Cross-chain bridge message delivery network. We are hiring, [email protected]

Overview

Logo

License Substrate version CI GitHub tag (latest by date) Quay.io GitHub code lines GitHub last commit

Twitter URL Telegram Medium Discord

Introduction

Implementation of a https://darwinia.network node in Rust based on the Substrate framework.

This repository contains runtimes for the Darwinia and Crab networks.

Resources

Ecosystem

Project Introduction Code Activity
Darwinia Common Darwinia bridge core protocol implementation as runtime pallet and Pangolin/Pangoro testnet GitHub code lines GitHub last commit
Darwinia Parachain Darwinia's parachain on Polkadot/Kusama GitHub code lines GitHub last commit
Darwinia Bridge Sol Darwinia bridge solidity smart contracts GitHub code lines GitHub last commit
Bridger Client for header relayers and message relayers in Darwinia's bridge network GitHub code lines GitHub last commit
Smart App DVM, smart contract, and transfer RING/KTON between Substrate address and Ethereum address GitHub code lines GitHub last commit

Documents

Technical Support

Installation

  • Downloading pre-built binary from releases page.
  • Using the docker image on releases page.
  • Building from source follow this guide.

Building

Make sure that you have all the required dependencies.

Follow substrate-getting-started.

Installing via Cargo

cargo install --git https://github.com/darwinia-network/darwinia --tag <version> --locked

Building from Source

# with github-cli
gh repo clone darwinia-network/darwinia
# with git
git clone https://github.com/darwinia-network/darwinia.git
git checkout <version>
cargo build --release --locked

Networks

This repository supports runtimes for Darwinia and Crab.

Connecting to Darwinia Mainnet

Connecting to the global Darwinia network by running:

./darwinia --chain darwinia

You can see your node on telemetry (set a custom name with --name "my custom name").

Connecting to Crab Canary Network

Connecting to the global Crab Canary Network by running:

./darwinia --chain crab

You can see your node on telemetry (set a custom name with --name "my custom name").

Contributing

Roadmap

Roadmap

Contributing Guidelines

Contributing Guidelines

Contributor Code of Conduct

Code of Conduct

Security

Security

Comments
  • tokio-runtime-worker' panicked at 'supplied instant is later than self

    tokio-runtime-worker' panicked at 'supplied instant is later than self

    Jan 15 09:23:04
    Thread 'tokio-runtime-worker' panicked at 'supplied instant is later than self', library/std/src/time.rs:275
      30: __clone
      29: start_thread
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/sys/unix/thread.rs:87:17
          std::sys::unix::thread::Thread::new::thread_start
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/alloc/src/boxed.rs:1042:9
          <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/alloc/src/boxed.rs:1042:9
      28: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
      27: core::ops::function::FnOnce::call_once{{vtable.shim}}
      26: std::sys_common::backtrace::__rust_begin_short_backtrace
      25: tokio::runtime::context::enter
      24: tokio::runtime::blocking::pool::Inner::run
      23: tokio::runtime::task::raw::poll
      22: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
      21: tokio::runtime::task::core::Core<T,S>::poll
      20: tokio::loom::std::unsafe_cell::UnsafeCell<T>::with_mut
      19: tokio::runtime::thread_pool::worker::run
      18: tokio::macros::scoped_tls::ScopedKey<T>::set
      17: tokio::runtime::thread_pool::worker::Context::run
      16: tokio::runtime::thread_pool::worker::Context::run_task
      15: std::thread::local::LocalKey<T>::with
      14: tokio::runtime::task::harness::Harness<T,S>::poll
      13: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
      12: tokio::runtime::task::core::Core<T,S>::poll
      11: <core::future::from_generator::GenFuture<T> as core::future::future::Future>::poll
      10: <futures_util::future::select::Select<A,B> as core::future::future::Future>::poll
       9: <futures_util::future::future::catch_unwind::CatchUnwind<Fut> as core::future::future::Future>::poll
       8: <prometheus::histogram::HistogramTimer as core::ops::drop::Drop>::drop
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/time.rs:339:9
          std::time::Instant::elapsed
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/time.rs:400:9
          <std::time::Instant as core::ops::arith::Sub>::sub
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/time.rs:275:9
          std::time::Instant::duration_since
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/core/src/option.rs:346:21
       7: core::option::Option<T>::expect
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/core/src/option.rs:1226:5
       6: core::option::expect_failed
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/core/src/panicking.rs:85:14
       5: core::panicking::panic_fmt
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/panicking.rs:483:5
       4: rust_begin_unwind
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/sys_common/backtrace.rs:153:18
       3: std::sys_common::backtrace::__rust_end_short_backtrace
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/panicking.rs:484:9
       2: std::panicking::begin_panic_handler::{{closure}}
                 at rustc/a1dfd2490a6cb456b92e469fa550dc217e20ad6d/library/std/src/panicking.rs:581:17
       1: std::panicking::rust_panic_with_hook
       0: sp_panic_handler::set::{{closure}}
    Version: 0.8.8-97a8c44-x86_64-linux-gnu
    
    Linux vmi424166.contaboserver.net 4.15.0-122-generic #124-Ubuntu SMP Thu Oct 15 13:03:05 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    
    opened by wwwAndries 23
  • Use `sr-tool` for Release

    Use `sr-tool` for Release

    • Automatic test and create release
    • Compile wasm using srtool
    • A simple guide written in Chinese

    ref: https://github.com/darwinia-network/darwinia/issues/627

    U-CI/CD 
    opened by fewensa 18
  • Question: Hard Spoon Solutions Practice?

    Question: Hard Spoon Solutions Practice?

    Latest devnet stuck on following issue

    2020-05-07 09:27:36 Error with block built on 0x937efeed9dfa375bdac396c3d278f034e8c5e8340e0c28d01e30c3ca8ae2da0f: ClientImport("Expected epoch change to happen at 0x1fd78e2705f55df0b2a06fbd4021f4355da6132b808cc23af3be29e0c1d24624, s264807276")
    

    Suspect that this is caused by a runtime upgrade changing the epoch duration introduced by #436

    We need further detail of the root cause and solutions to handle this case.

    U-Question 
    opened by hackfisher 15
  • Why nextFeeMultiplier is -1 in Kusama and Crab

    Why nextFeeMultiplier is -1 in Kusama and Crab

    Queried value from chain state is Fixed128 -1,000,000,000,000,000,000

    Fixed128 is a signed fixed-point number with fixed-point accuracy of 10 ** 18, so it is -1 actrully, and removed all length fee and weight fee as a result, only base fee are computed.

    opened by hackfisher 14
  • Fix tests of Staking for Crab

    Fix tests of Staking for Crab

    #325


    Update Steps

    • [x] update tests from v2.0.0.alpha.3
    • [x] seperate tests
    • [x] fix tests failed by LockFor
    • [x] fix tests failed by ValidatorPrefs
    • [x] fix tests failed by BondDurationInEra

    Need to separate into other prs

    Both

    • [x] check the calculation of power, reward.(marked)
    • [x] unbond method(marked)

    darwinia_tests

    • [x] slash_validators issue(marked)
    opened by clearloop 14
  • finalized block is blocked

    finalized block is blocked

    It runs well somedays ago. but the finalized blocks is blocked at 115886. It can't be fixed by restart.

    env:

    $ cat /etc/redhat-release 
    CentOS Linux release 7.7.1908 (Core)
    

    client version: https://github.com/darwinia-network/darwinia/releases/download/v0.4.6/CentOS.tar.gz

    config.json:

    {
        "base-path": "/root/icefrog/CentOS/data/",
        "bootnodes": [
            "/ip4/35.234.35.49/tcp/6666/p2p/QmY2re382ng8VekYkRipPRAtNFxTnA6UgyiaRE8Jq98Fm6",
            "/ip4/121.199.60.87/tcp/20222/p2p/QmXtQhnKQttAe4JVxDHc6ivmXhqZzGBufjoczo6xSAc8LU",
            "/ip4/94.191.64.39/tcp/20222/p2p/QmcFnM532f3yApiuD9DNqmQjL7XezLU7PPN7BYznXTftj2",
            "/ip4/59.41.200.34/tcp/23334/p2p/QmSNmqD7o4qqoPhAJf4ghnmiWvDL9QZJWmE5KLR4DpA8rZ"
        ],
        "name": "Flyq",
        "validator": true,
        "rpc-external": true,
        "rpc-port": 23332,
        "ws-external": true,
        "ws-port": 23333,
        "rpc-cors": "all",
        "port": 23334
    }
    

    log:

    2020-01-07 08:45:30 Idle (15 peers), best: #134250 (0x3ff7…ad94), finalized #115886 (0xdd29…1183), ⬇ 6.2kiB/s ⬆ 5.5kiB/s
    2020-01-07 08:45:34 Imported #134251 (0x16d0…703c)
    2020-01-07 08:45:35 Idle (15 peers), best: #134251 (0x16d0…703c), finalized #115886 (0xdd29…1183), ⬇ 5.2kiB/s ⬆ 4.3kiB/s
    2020-01-07 08:45:39 Discovered new external address for our node: /ip4/10.156.1.47/tcp/23334/p2p/QmNbU5KY7Y1P5urTMYHCDzEU8NZddy3fYUh3a3MedfEg5e
    2020-01-07 08:45:39 Reorg from #134251,0x16d0…703c to #134251,0x88e1…4d3a, common ancestor #134250,0x3ff7…ad94
    2020-01-07 08:45:39 Imported #134251 (0x88e1…4d3a)
    2020-01-07 08:45:40 Idle (15 peers), best: #134251 (0x88e1…4d3a), finalized #115886 (0xdd29…1183), ⬇ 8.2kiB/s ⬆ 5.7kiB/s
    2020-01-07 08:45:45 Imported #134252 (0xa8f2…02d7)
    2020-01-07 08:45:45 Idle (15 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 7.1kiB/s ⬆ 5.3kiB/s
    ^Cpure virtual method called
    terminate called without an active exception
    Aborted
    134 root@iZuf679ganic8z8whgaxhtZ:~/icefrog/CentOS$ ^C
    130 root@iZuf679ganic8z8whgaxhtZ:~/icefrog/CentOS$ ./darwinia --conf=config.json
    2020-01-07 08:45:48 Darwinia IceFrog Node
    2020-01-07 08:45:48 Version: 0.4.6-0174b00-x86_64-linux-gnu
    2020-01-07 08:45:48   _____                      _       _       
    2020-01-07 08:45:48  |  __ \                    (_)     (_)      
    2020-01-07 08:45:48  | |  | | __ _ _ ____      ___ _ __  _  __ _ 
    2020-01-07 08:45:48  | |  | |/ _` | '__\ \ /\ / / | '_ \| |/ _` |
    2020-01-07 08:45:48  | |__| | (_| | |   \ V  V /| | | | | | (_| |
    2020-01-07 08:45:48  |_____/ \__,_|_|    \_/\_/ |_|_| |_|_|\__,_|
    2020-01-07 08:45:48 Chain specification: Darwinia IceFrog Testnet
    2020-01-07 08:45:48 Node name: Flyq
    2020-01-07 08:45:48 Roles: "AUTHORITY"
    2020-01-07 08:45:58 Highest known block at #134252
    2020-01-07 08:45:58 Local node identity is: QmNbU5KY7Y1P5urTMYHCDzEU8NZddy3fYUh3a3MedfEg5e
    2020-01-07 08:45:58 Starting BABE Authorship worker
    2020-01-07 08:45:59 Discovered new external address for our node: /ip4/101.132.117.50/tcp/23334/p2p/QmNbU5KY7Y1P5urTMYHCDzEU8NZddy3fYUh3a3MedfEg5e
    2020-01-07 08:46:05 Idle (2 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 1.8kiB/s ⬆ 0.9kiB/s
    2020-01-07 08:46:10 Idle (2 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 0.8kiB/s ⬆ 0.9kiB/s
    2020-01-07 08:46:15 Idle (2 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 0.5kiB/s ⬆ 0.7kiB/s
    2020-01-07 08:46:20 Idle (2 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 2.5kiB/s ⬆ 1.6kiB/s
    2020-01-07 08:46:25 Idle (2 peers), best: #134252 (0xa8f2…02d7), finalized #115886 (0xdd29…1183), ⬇ 1.4kiB/s ⬆ 1.1kiB/s
    
    opened by flyq 11
  • Release v0.11.0 (with New MMR)

    Release v0.11.0 (with New MMR)

    Parent patch: #670

    • [x] Require https://github.com/darwinia-network/darwinia-common/pull/689 (cargo update)
    • [x] After pruning finished, test with try-runtime
    • [x] After pruning finished, test with fork-off-substrate
    N-Crab N-Darwinia 
    opened by AurevoirXavier 10
  • Final Check List

    Final Check List

    Code Hygiene + Genesis

    • [x] Ensure that you are using a stable Substrate release.
    • [x] Avoid using experimental or untested features of Substrate on genesis.
    • [x] Avoid deviating from defaults, especially in consensus-relevant code, unless you have a strong understanding of the side-effects.
    • [x] If you have a custom SessionManager in your runtime, and are using frame_session, ensure/verify that it always gives the session module a complete set of keys.
    • [x] Validate/audit your chainspec - ensure all configs are set and all values are correct (as expected in terms of data types and defaults).
    • [x] Validator Nodes in config should all have all required session keys - session keys in config should all be present on a node.
    • [x] Sessions keys in config and in the runtime should be in the same order.
    • [x] Sanity Check: Can you achieve finality with the number of validators you control at genesis?
    • [x] Ensure as many dependencies as possible are crates following semver.
    • [x] Sanity check your block time/slot length and session/epoch length - if you have too few blocks for a given validator set/session, sync will be slowed - and it is very difficult to change these specific constants post-launch.
    • [ ] Benchmark any custom runtime functions - use benchmark values of existing runtime functions to specify accurate weights for your custom functions.
    • [x] "Canary Net"s and public testnets are pretty critical to having networks with realistic/real state/value to better test things like migrations and the economics of your network - if it is not already in the plans, consider building and maintaining at least one.

    Launch Checklist

    • [x] Are your genesis validators online and available? Do you have communication lines open to any third-party validators?
    • [x] Consider having a private "dry run" where you execute the public chainspec unreleased on your own infrastructure.

    Ops, Infrastructure, and Maintenance

    • [x] What is your CI infrastructure like for node or runtime upgrades? Can you release a critical upgrade within a single era as determined in your chainspec, and have validators upgrade?

    Upgrades and Future-proofing

    • [ ] What is your process for runtime upgrades? Are you familiar with using srtool (or equivalent) for deterministic builds? Users will need to verify runtime upgrades as well - you will need a process for communicating upgrades with them.
    • [x] For any upstream Substrate update: are you educated on exactly how this update may change your runtime, where the migration code is, if any, and any other breaking changes or changes in behavior it may present?
    • [x] For any runtime upgrade that changes storage format: have you written migration code (for your own pallets) and determined how to safely perform the upgrade on your network?
    • [x] Sanity Check: verify that any linked data in your runtime is migrated in an order/manner that does not break links.
    • [x] For all runtime upgrades: have you already tested out the runtime upgrades and any relevant migrations on a local or public testnet?
    • [x] Have you tested the latest version of the upgrade, including "minor last-minute changes"?

    Darwinia

    • [x] Darwinia dev-net.
    • [x] How tech.comm./council works? disable on mainnet?
    • [x] How Origin works?
    • [x] Disable swap and burn.
    • [x] MultiSig tests.
    • [x] Apps tests.
    • [x] Update root key.
    opened by AurevoirXavier 9
  • Crab grandpa finality issues

    Crab grandpa finality issues

    In v0.5.0 devnet testing, the finalized block stall on zero. Here is some analysis about the case:

    Reproduce the steps:

    1. There are 4 validators configed in genesis session with session keys, including grandpa key(ed25519), two of them get online intime with right keys before the on_session_change, but the other two didn't. Because there are only 2/4 (< 2/3) validators gossiping the grandpa, so the blocks in genesis didn't get finalized.

    2. After several session, other validators start bond and start validating, and the grandpa authorities set get changed, even though there might be > 2/3 validators online now, the blocks in later session didn't get finalized because there are previous blocks(those in the genesis session) remain unfinalized.

    Notice the assumption here: Blocks in one session must be finalized by the grandpa keys set of that session, cannot finalized by the keys set in latest session, this assumption need to be confirmed. Because in p2p networks, you cannot make sure what happens to the other offline branch and its successor key sets which could be different. The branches might just fork due to network connections and can not see each other, from decentralized perspective, you can not determine which branch should get finalized.

    For the case in crab v0.5.0 devnet, the two genesis offline validators start validating later, but used different grandpa keys by setting rotate_keys using rpc call. Although they have same validator id with genesis config, but because the grandpa key has changed, so I guess that changed grandpa key will not work to help reach finality consensus for genesis session blocks.

    Maybe we can make a experiment by requesting the two offline validator to change their grandpa keys back to the keys in genesis config and see whether it will helps?

    Currently, substrate lacks diagnostic methods except -lafg option, but some works is already in progress to help improve this.

    Related: https://github.com/paritytech/substrate/issues/4921

    opened by hackfisher 9
  • Inconsistent dvm data from different nodes

    Inconsistent dvm data from different nodes

    At block 0x9ddda2

    on Onfinality

    {
        "jsonrpc": "2.0",
        "result": {
            "author": "0x9c466a094a9463034579dadde3b7a6237a7ca264",
            "difficulty": "0x0",
            "extraData": "0x",
            "gasLimit": "0xffffffff",
            "gasUsed": "0x1583b",
            "hash": "0xa834dda6d0759dc8a4877f0005cc905cff719c29df90b89fc35e13f216efb1d3",
            "logsBloom": "0x00000000000000000000000000000000000400000000000000000000000000000000000002000000000000000000000000000000000000080000000000000000000000000000000000000008000000000000000000000000000001000000000000000000020000000000000000000800000000000000000080000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000020000000000000000000000000000002000000200020000000000000000020000000000000000000000020000000000000000000000000000000000000000000000004000000002000000000",
            "miner": "0x9c466a094a9463034579dadde3b7a6237a7ca264",
            "number": "0x9ddda2",
            "parentHash": "0xc6ff4d4a147345ab2d66f4c07bee5a181a40d23a755e336004245bf45c6872d3",
            "receiptsRoot": "0xe0785c7c8a6c1e40b8c92d691bbdd957568007acb9ed67d47eb30a4b5eca9353",
            "sealFields": [
                "0x0000000000000000000000000000000000000000000000000000000000000000",
                "0x0000000000000000"
            ],
            "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
            "size": "0x260",
            "stateRoot": "0xe9287f6cd1028bf3015e3bb18b72276a01ce41b1cc7ec103b4f2fa3b1bc80350",
            "timestamp": "0x6274ffa4",
            "totalDifficulty": "0x0",
            "transactions": [
                "0x604ae7fd3732f8ea1ca55a6e088ed153020af103e1dd48022567baef6484def7"
            ],
            "transactionsRoot": "0x52c639e82eda7243cad855d942f9985dad385a000e6d43275887fd90d2b24db1",
            "uncles": []
        },
        "id": 83
    }
    

    on dwellir

    {
        "jsonrpc": "2.0",
        "result": {
            "author": "0x9c466a094a9463034579dadde3b7a6237a7ca264",
            "difficulty": "0x0",
            "extraData": "0x",
            "gasLimit": "0xffffffff",
            "gasUsed": "0x1583b",
            "hash": "0xa834dda6d0759dc8a4877f0005cc905cff719c29df90b89fc35e13f216efb1d3",
            "logsBloom": "0x00000000000000000000000000000000000400000000000000000000000000000000000002000000000000000000000000000000000000080000000000000000000000000000000000000008000000000000000000000000000001000000000000000000020000000000000000000800000000000000000080000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000020000000000000000000000000000002000000200020000000000000000020000000000000000000000020000000000000000000000000000000000000000000000004000000002000000000",
            "miner": "0x9c466a094a9463034579dadde3b7a6237a7ca264",
            "number": "0x9ddda2",
            "parentHash": "0xc6ff4d4a147345ab2d66f4c07bee5a181a40d23a755e336004245bf45c6872d3",
            "receiptsRoot": "0xe0785c7c8a6c1e40b8c92d691bbdd957568007acb9ed67d47eb30a4b5eca9353",
            "sealFields": [
                "0x0000000000000000000000000000000000000000000000000000000000000000",
                "0x0000000000000000"
            ],
            "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
            "size": "0x2d0",
            "stateRoot": "0xe9287f6cd1028bf3015e3bb18b72276a01ce41b1cc7ec103b4f2fa3b1bc80350",
            "timestamp": "0x6274ffa4",
            "totalDifficulty": "0x0",
            "transactions": [
                "0x88ca78f21f532cf41d04d5ba6a5afa89050c0a026983264a7b14f3327b9b1ab7"
            ],
            "transactionsRoot": "0x52c639e82eda7243cad855d942f9985dad385a000e6d43275887fd90d2b24db1",
            "uncles": []
        },
        "id": 83
    }
    
    N-Crab S-Node Misbehavior 
    opened by xiaoch05 8
  • Verify mixhash will freeze the node in Ropsten testnet

    Verify mixhash will freeze the node in Ropsten testnet

    raw:

    { parent_hash: '0xc2d104908203a4419cc29f9e5ceebe5a130d96ac69a865cfef89e36f2b6de5f1', timestamp: 1575624114, number: 6915602, auth: '0x4CCfB3039b78d3938588157564c9AD559bAfAB94', transaction_root: '0x9a97b00869ce8de3cd646be8a1c6148d3edb7f7083ac9bcfb9a9d6cc0d0f0b54', uncles_hash: '0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347', extra_data: '0xd983010906846765746889676f312e31312e3133856c696e7578', state_root: '0x75383e52592a2f3e40234dc6ad4af1383e6fa8115ab2171ad387be9de7e291ca', receipts_root: '0xc5ce3af4decafc93c2823424a1ff470d22e4bb5479d10521a6ef76520aee6da9', log_bloom: '0x0c2010000000001100000000040000000000020080040a00108002000080000200040201200080000200000000000000000100100000000010200000101400008000a00004002000000800080002000000010000000420008000020800920000020048080200200040000000044008000100000001010a7000000010000010440200080040000900040000500000200000008000020140000400000000004000000000000000000020100140000084000400000000000010000000000010080100800002000000000402100a0080000a001100000020040000000300310065000200000200001000400000100000000000410009008000000000021040040080', gas_used: 3558723, gas_limit: 8000000, difficulty: '10806626916', seal: [ '0xa0909224b492f81573c79e9a3df51425f6793a7499158239f080fc184907588d55', '0x88e6fef2a006f7c836' ], hash: '0xb0b1ad2670694515ef167db041983933fbba51fcd03b600392b8c74480b10e13' }
    

    format json:

    {
    	"parent_hash": "0xc2d104908203a4419cc29f9e5ceebe5a130d96ac69a865cfef89e36f2b6de5f1",
    	"timestamp": 1575624114,
    	"number": 6915602,
    	"auth": "0x4CCfB3039b78d3938588157564c9AD559bAfAB94",
    	"transaction_root": "0x9a97b00869ce8de3cd646be8a1c6148d3edb7f7083ac9bcfb9a9d6cc0d0f0b54",
    	"uncles_hash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
    	"extra_data": "0xd983010906846765746889676f312e31312e3133856c696e7578",
    	"state_root": "0x75383e52592a2f3e40234dc6ad4af1383e6fa8115ab2171ad387be9de7e291ca",
    	"receipts_root": "0xc5ce3af4decafc93c2823424a1ff470d22e4bb5479d10521a6ef76520aee6da9",
    	"log_bloom": "0x0c2010000000001100000000040000000000020080040a00108002000080000200040201200080000200000000000000000100100000000010200000101400008000a00004002000000800080002000000010000000420008000020800920000020048080200200040000000044008000100000001010a7000000010000010440200080040000900040000500000200000008000020140000400000000004000000000000000000020100140000084000400000000000010000000000010080100800002000000000402100a0080000a001100000020040000000300310065000200000200001000400000100000000000410009008000000000021040040080",
    	"gas_used": 3558723,
    	"gas_limit": 8000000,
    	"difficulty": "10806626916",
    	"seal": [
    		"0xa0909224b492f81573c79e9a3df51425f6793a7499158239f080fc184907588d55",
    		"0x88e6fef2a006f7c836"
    	],
    	"hash": "0xb0b1ad2670694515ef167db041983933fbba51fcd03b600392b8c74480b10e13"
    }
    
    opened by WoeOm 8
  • Align evm min_gas_price with pallet_transaction_payment::Pallet::<ThisRuntime>::next_fee_multiplier()

    Align evm min_gas_price with pallet_transaction_payment::Pallet::::next_fee_multiplier()

    let unadjusted_weight_fee = ThisRuntime::WeightToFee::calc(&dispatch_weight);
    					let fee_multiplier =
    						pallet_transaction_payment::Pallet::<ThisRuntime>::next_fee_multiplier();
    					let adjusted_weight_fee =
    						fee_multiplier.saturating_mul_int(unadjusted_weight_fee);
    

    https://github.com/darwinia-network/darwinia-common/blob/main/frame/dvm/ethereum/src/lib.rs#L474

    C-EVM 
    opened by hackfisher 3
  • Let's build-subwasm job become a common action

    Let's build-subwasm job become a common action

    this is used by Darwinia and Darwinia Parachain projects

    https://github.com/darwinia-network/darwinia/blob/2c790228738a2d2ae9bf724157690bd5eddd8dc8/.github/workflows/release.yml#L65-L147

    P-Mid 
    opened by fewensa 0
Releases(v0.12.5)
Owner
Darwinia Network
Cross-chain bridge and message delivery network
Darwinia Network
Darwinia networks' tracing runtime override collections

Darwinia Runtime Overrides USAGE: runtime-overrides [OPTIONS] --runtime <CHAIN> OPTIONS: -h, --help Print help information

Darwinia Network 4 Aug 3, 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
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
The Phala Network Blockchain, pRuntime and the bridge.

Phala Blockchain Phala Network is a TEE-Blockchain hybrid architecture implementing Confidential Contract. This repo includes: node/: the main blockch

Phala Network 314 Jan 6, 2023
A value transfer bridge between the Monero blockchain and the Secret Network.

Secret-Monero-Bridge A value transfer bridge between the Monero blockchain and the Secret Network. Proof-of-Concept Video Demonstration: https://ipfs.

null 28 Dec 7, 2022
hello-world geyser plugin to stream accounts and transactions from a solana node

src/lib.rs: entrypoint src/plugin.rs: main plugin code to run: cargo build && solana-test-validator -r --geyser-plugin-config config.json note: make s

null 4 Nov 18, 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
Basilisk node - cross-chain liquidity protocol built on Substrate

Basilisk node Local Development Follow these steps to prepare a local Substrate development environment ??️ Simple Setup Install all the required depe

Galactic Council 52 Dec 27, 2022
a cross-chain dollar cost averaging

Ethtent an intent-solver infrastructure prototype for automated defi earning Demo Video here Project Desciption We build an intent-solver infrastructu

null 4 Sep 11, 2023
Filecoin to substrate bridge

filecoindot A Substrate pallet to bridge from Filecoin to any blockchain built using the Substrate framework, including Polkadot parachains. How to in

ChainSafe 23 Nov 23, 2022
Terabethia - A Bridge and Messaging Protocol between Ethereum and the Internet Computer.

Terabethia - A Bridge Between Ethereum & the Internet Computer Terabethia is a bridge between Ethereum & the Internet Computer that contracts in both

Psychedelic 36 Dec 26, 2022
A bridge between different serde implementations.

serde-bridge   Bridge between serde types Quick Start use anyhow::Result; use serde_bridge::{from_value, into_value, FromValue, IntoValue, Value}; fn

Xuanwo 14 Nov 24, 2022
interBTC A trust-minimized bridge from Bitcoin to Polkadot.

interBTC A trust-minimized bridge from Bitcoin to Polkadot. Explore the specification » Report Bug · Request Feature This repository is hosted on GitH

Interlay 192 Dec 27, 2022
Simple node and rust script to achieve an easy to use bridge between rust and node.js

Node-Rust Bridge Simple rust and node.js script to achieve a bridge between them. Only 1 bridge can be initialized per rust program. But node.js can h

Pure 5 Apr 30, 2023
🤖CyberAI is designed to bridge the world of Cyberpunk 2077 and the power of OpenAI's AI technology.

CyberAI ?? Welcome to the CyberAI project! This plugin for Cyberpunk 2077 enables integration between the videogame and OpenAI API, opening a world of

Kirill Kuzin 19 Jul 28, 2023
A Rust implementation of the Message Layer Security group messaging protocol

Molasses An extremely early implementation of the Message Layer Security group messaging protocol. This repo is based on draft 4 of the MLS protocol s

Trail of Bits 109 Dec 13, 2022
Ethereum (and Ethereum like) indexer using P2P message to fetch blocks and transactions

Ethereum P2P indexer This project is an indexer for Ethereum and Ethereum forks. It takes advantage of the ETH (Ethereum Wire Protocol) to fetch block

null 5 Nov 10, 2023
LayerCake: An insured-in-transit cross-network composability protocol

LayerCake: An insured-in-transit cross-network composability protocol The key features of LayerCake are: Instant transfers as opposed to the delayed t

Flare Labs 5 Jul 27, 2023
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