Parity Shasper beacon chain implementation using the Substrate framework.

Related tags

Concurrency shasper
Overview

Parity Shasper

crates.io Documentation

This is an implementation of Serenity beacon chain by Parity Technologies. To learn more about Serenity and Ethereum's sharding plan, see the sharding FAQ and the research compendium.

Parity Shasper consists of a core library beacon which handles beacon chain state transition logic, a client built on Substrate framework (in substrate folder), and a lightweight client built from ground up (in blockchain folder). The substrate client and the blockchain client shares the core library, but operates independently.

To build the client, you need to have Rust installed. Other dependencies required including pkgconfig, libudev, openssl, cmake, clang.

substrate client

The substrate client is currently being reworked at this moment. Stay tuned!

blockchain client

The blockchain client uses spec archive LMD-GHOST consensus and Serenity beacon v0.8 runtime. The client implements a basic in-memory backend and networking stack based on libp2p. It also contains basic validator logic and can participate in beacon chain proposing and attestation.

To build the blockchain client:

cd ./blockchain && cargo run --release -- --author

FAQ

Why common caching strategies for beacon and LMD-GHOST are not yet implemented?

Internally we made the decision that we will strictly follow the beacon chain specification for now, and implement optimizations after the specification is frozen. This is because the specification still changes a lot, and we worry that optimizations we make right now will make upgrading to a newer version of the specification much harder.

License

Licensed under GPLv3.

Comments
  • failed to run custom build command for `librocksdb-sys v5.14.3`

    failed to run custom build command for `librocksdb-sys v5.14.3`

    [jray@jr-dl shasper]$ cargo run -- --dev
       Compiling librocksdb-sys v5.14.3
       Compiling substrate-network v0.1.0 (https://github.com/paritytech/substrate#60801d8b)
       Compiling substrate-basic-authorship v0.1.0 (https://github.com/paritytech/substrate#60801d8b)
       Compiling substrate-consensus-aura-slots v0.1.0 (https://github.com/paritytech/substrate#60801d8b)
    error: failed to run custom build command for `librocksdb-sys v5.14.3`
    process didn't exit successfully: `/home/jray/shasper/target/debug/build/librocksdb-sys-7204a4f39962fc8b/build-script-build` (exit code: 101)
    --- stdout
    cargo:rerun-if-changed=build.rs
    cargo:rerun-if-changed=rocksdb/
    cargo:rerun-if-changed=snappy/
    cargo:rerun-if-changed=lz4/
    cargo:rerun-if-changed=zstd/
    cargo:rerun-if-changed=zlib/
    cargo:rerun-if-changed=bzip2/
    
    --- stderr
    thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any valid shared libraries matching: [\'libclang.so\', \'libclang-*.so\', \'libclang.so.*\'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', src/libcore/result.rs:1009:5
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    [jray@jr-dl shasper]$ echo $LIBCLANG_PATH
    
    [jray@jr-dl shasper]$ RUST_BACKTRACE=1 cargo run -- --dev
       Compiling librocksdb-sys v5.14.3
       Compiling shasper-runtime v0.9.0 (/home/jray/shasper/runtime)
       Compiling substrate-rpc v0.1.0 (https://github.com/paritytech/substrate#60801d8b)
    error: failed to run custom build command for `librocksdb-sys v5.14.3`
    process didn't exit successfully: `/home/jray/shasper/target/debug/build/librocksdb-sys-7204a4f39962fc8b/build-script-build` (exit code: 101)
    --- stdout
    cargo:rerun-if-changed=build.rs
    cargo:rerun-if-changed=rocksdb/
    cargo:rerun-if-changed=snappy/
    cargo:rerun-if-changed=lz4/
    cargo:rerun-if-changed=zstd/
    cargo:rerun-if-changed=zlib/
    cargo:rerun-if-changed=bzip2/
    
    --- stderr
    thread 'main' panicked at 'Unable to find libclang: "couldn\'t find any valid shared libraries matching: [\'libclang.so\', \'libclang-*.so\', \'libclang.so.*\'], set the `LIBCLANG_PATH` environment variable to a path where one of these files can be found (invalid: [])"', src/libcore/result.rs:1009:5
    stack backtrace:
       0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
                 at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
       1: std::sys_common::backtrace::_print
                 at src/libstd/sys_common/backtrace.rs:71
       2: std::panicking::default_hook::{{closure}}
                 at src/libstd/sys_common/backtrace.rs:59
                 at src/libstd/panicking.rs:211
       3: std::panicking::default_hook
                 at src/libstd/panicking.rs:227
       4: std::panicking::rust_panic_with_hook
                 at src/libstd/panicking.rs:491
       5: std::panicking::continue_panic_fmt
                 at src/libstd/panicking.rs:398
       6: rust_begin_unwind
                 at src/libstd/panicking.rs:325
       7: core::panicking::panic_fmt
                 at src/libcore/panicking.rs:95
       8: core::result::unwrap_failed
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libcore/macros.rs:26
       9: <core::result::Result<T, E>>::expect
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libcore/result.rs:835
      10: core::ops::function::FnOnce::call_once
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/src/lib.rs:1664
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libcore/ops/function.rs:238
      11: <lazy_static::lazy::Lazy<T>>::get::{{closure}}
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.2.0/src/inline_lazy.rs:28
      12: std::sync::once::Once::call_once::{{closure}}
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libstd/sync/once.rs:230
      13: std::sync::once::Once::call_inner
                 at src/libstd/sync/once.rs:397
      14: std::sync::once::Once::call_once
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libstd/sync/once.rs:230
      15: <bindgen::ensure_libclang_is_loaded::LIBCLANG as core::ops::deref::Deref>::deref
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-1.2.0/src/inline_lazy.rs:27
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/<::lazy_static::__lazy_static_internal macros>:12
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/<::lazy_static::__lazy_static_internal macros>:13
      16: bindgen::ensure_libclang_is_loaded
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/src/lib.rs:1671
      17: bindgen::Bindings::generate
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/src/lib.rs:1686
      18: bindgen::Builder::generate
                 at /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/bindgen-0.43.2/src/lib.rs:1216
      19: build_script_build::bindgen_rocksdb
                 at ./build.rs:34
      20: build_script_build::main
                 at ./build.rs:287
      21: std::rt::lang_start::{{closure}}
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libstd/rt.rs:74
      22: std::panicking::try::do_call
                 at src/libstd/rt.rs:59
                 at src/libstd/panicking.rs:310
      23: __rust_maybe_catch_panic
                 at src/libpanic_unwind/lib.rs:102
      24: std::rt::lang_start_internal
                 at src/libstd/panicking.rs:289
                 at src/libstd/panic.rs:398
                 at src/libstd/rt.rs:58
      25: std::rt::lang_start
                 at /rustc/9fda7c2237db910e41d6a712e9a2139b352e558b/src/libstd/rt.rs:74
      26: main
      27: __libc_start_main
      28: _start
    
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    

    Which path should I set LIBCLANG_PATH to, or how can this be done automatically?

    Should I cross-post an issue with librocksdb-sys?

    F3-annoyance 💩 M0-build 🏗 
    opened by jamesray1 10
  • Casper consensus in SRML

    Casper consensus in SRML

    This PR adds experimental support for Casper consensus in SRML. This allows integration with the rest of the Substrate ecosystem, so that any Substrate blockchain can use Casper consensus plug-in.

    Note that because this is on SRML, it's not meant to be compatible with Ethereum 2.0.

    • Offchain worker is used for attestation submission.
    • An example is provided at substrate/casper/template, which integrates all components together to create a chain with Aura block proposing, and Casper finality.
    A0-pleasereview 🤓 
    opened by sorpaas 2
  • Consensus error between wasm and native runtime execution

    Consensus error between wasm and native runtime execution

    2019-02-12 08:34:36 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                                        [1370/1434]
    2019-02-12 08:34:40 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:34:40 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:34:40    Function "Core_initialise_block"                                         
    2019-02-12 08:34:40    Native result Ok([])                                                                                                                                                                       
    2019-02-12 08:34:40    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))                                  
    2019-02-12 08:34:40 Aura authorship task terminated unexpectedly. Restarting                  
    2019-02-12 08:34:41 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:34:46 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                                                  
    2019-02-12 08:34:50 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:34:50 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:34:50    Function "Core_initialise_block"                                         
    2019-02-12 08:34:50    Native result Ok([])                                                                                                                                                                       
    2019-02-12 08:34:50    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))                                  
    2019-02-12 08:34:50 Aura authorship task terminated unexpectedly. Restarting                  
    2019-02-12 08:34:51 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:34:56 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                                                  
    2019-02-12 08:35:00 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:35:00 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:35:00    Function "Core_initialise_block"                                         
    2019-02-12 08:35:00    Native result Ok([])                                                                                                                                                                       
    2019-02-12 08:35:00    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))                                  
    2019-02-12 08:35:00 Aura authorship task terminated unexpectedly. Restarting                  
    2019-02-12 08:35:01 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:35:06 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                                                  
    2019-02-12 08:35:10 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:35:10 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:35:10    Function "Core_initialise_block"                                         
    2019-02-12 08:35:10    Native result Ok([])                                                                                                                                                                       
    2019-02-12 08:35:10    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))                                  
    2019-02-12 08:35:10 Aura authorship task terminated unexpectedly. Restarting                  
    2019-02-12 08:35:11 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:35:16 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                                                  
    2019-02-12 08:35:20 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:35:20 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:35:20    Function "Core_initialise_block"                                         
    2019-02-12 08:35:20    Native result Ok([])                                                                                                                                                                       
    2019-02-12 08:35:20    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))                                  
    2019-02-12 08:35:20 Aura authorship task terminated unexpectedly. Restarting                  
    2019-02-12 08:35:21 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:35:26 Kademlia random query has yielded empty results                                                                                                                                               
    2019-02-12 08:35:26 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:35:30 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:35:30 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:35:30    Function "Core_initialise_block"                                         
    2019-02-12 08:35:30    Native result Ok([])                                                                                       
    2019-02-12 08:35:30    Wasm result Err(Error(Wasmi(Trap(Trap { kind: MemoryAccessOutOfBounds })), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } }))
    2019-02-12 08:35:30 Aura authorship task terminated unexpectedly. Restarting
    2019-02-12 08:35:31 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0
    2019-02-12 08:35:36 Idle (0 peers), best: #63 (0x55c5…fe34), finalized #0 (0x116d…6717), ⬇ 0 ⬆ 0                                                                                
    2019-02-12 08:35:40 Starting consensus session on top of parent 0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34
    2019-02-12 08:35:40 Consensus error between wasm and native runtime execution at block Hash(0x55c5b4e192ef6f3b620189ee80ee857d470f09553d809eaa0dbe4c14cc21fe34)
    2019-02-12 08:35:40    Function "Core_initialise_block"                                         
    2019-02-12 08:35:40    Native result Ok([])                                                                                    
    
    F0-consensus 💣 M4-lib-blockchain ⛓ 
    opened by 5chdn 2
  • Unable to detect Open SSL version

    Unable to detect Open SSL version

    After following the README instructions I got the following:

    [jray@jr-dl shasper]$ cargo run -- --chain dev
       Compiling openssl v0.9.24
       Compiling serde_json v1.0.28
       Compiling url v1.7.1
       Compiling num-integer v0.1.39
    error: failed to run custom build command for `openssl v0.9.24`
    process didn't exit successfully: `/home/jray/r/shasper/target/debug/build/openssl-d6940fa3998f9474/build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'Unable to detect OpenSSL version', /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14
    note: Run with `RUST_BACKTRACE=1` for a backtrace.
    
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    [jray@jr-dl shasper]$ RUST_BACKTRACE=1 cargo run -- --chain dev
       Compiling openssl v0.9.24
       Compiling ctrlc v3.1.1
       Compiling crossbeam-epoch v0.3.1
       Compiling crossbeam-epoch v0.5.2
    error: failed to run custom build command for `openssl v0.9.24`
    process didn't exit successfully: `/home/jray/r/shasper/target/debug/build/openssl-d6940fa3998f9474/build-script-build` (exit code: 101)
    --- stderr
    thread 'main' panicked at 'Unable to detect OpenSSL version', /home/jray/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14
    stack backtrace:
       0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
                 at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
       1: std::sys_common::backtrace::print
                 at libstd/sys_common/backtrace.rs:71
                 at libstd/sys_common/backtrace.rs:59
       2: std::panicking::default_hook::{{closure}}
                 at libstd/panicking.rs:211
       3: std::panicking::default_hook
                 at libstd/panicking.rs:227
       4: std::panicking::rust_panic_with_hook
                 at libstd/panicking.rs:477
       5: std::panicking::begin_panic
                 at libstd/panicking.rs:411
       6: build_script_build::main
                 at ./build.rs:16
       7: std::rt::lang_start::{{closure}}
                 at libstd/rt.rs:74
       8: std::panicking::try::do_call
                 at libstd/rt.rs:59
                 at libstd/panicking.rs:310
       9: __rust_maybe_catch_panic
                 at libpanic_unwind/lib.rs:103
      10: std::rt::lang_start_internal
                 at libstd/panicking.rs:289
                 at libstd/panic.rs:392
                 at libstd/rt.rs:58
      11: std::rt::lang_start
                 at libstd/rt.rs:74
      12: main
      13: __libc_start_main
      14: _start
    
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    

    Related: https://github.com/sfackler/rust-openssl/issues/994. 0.9 needs to be updated in dependencies to 0.10.15, 0.9 is not supported any more.

    TL;DR: none of the below seems to help.

    Looking at the dependency graph in https://github.com/paritytech/shasper/pull/20, it is too jumbled to easily identify what are dependencies of openssl. So looking at the cargo-count.dot file, openssl is a build dependency of native-tls and an optional dependency of ws v0.7.8. The latest version for ws is 0.7.9, which uses open-ssl 0.10, still as an optional dependency. Both ws and native-tls are build dependencies (green diamonds). tokio-tls and websocket depend on native-tls, and substrate-telemetry depends on ws, etc. native-tls's latest version is 0.2.2, using open-ssl 0.10.15, which is currently the latest version (on all platforms except for windows, Mac, and iOS). So it seems like the solution to this is to change substrate-telemetry to ws 0.7.9, and use versions of tokio-tls (0.2) and websocket (0.21.1) that use native-tls 0.2.2, or just native-tls 0.2. However, substrate-telemetry already uses ws ^0.7. OTOH, ws 0.7.0 optionally uses open-ssl ^0.9, so I think that may be the issue. I made a PR to update ws to 0.7.9 in substrate.

    The tokio-tls readme says to also add native-tls 0.2 as a dependency to your project's toml., and also just use tokio-tls 0.2 (rather than 0.2.2). Websocket 0.21.0 is a dependency of libp2p-websocket, could change that to 0.21.1. websocket 0.21.1 also depends on tokio-tls 0.2.0 (which could be changed to 0.2) and native-tls 0.2.1; I made a PR to update native-tls to 0.2.2: https://github.com/websockets-rs/rust-websocket/pull/197. However, that doesn't help as native-tls 0.2.1 used open-ssl ^0.10.11.

    M5-lib-beacon 🖇 Z0-unconfirmed 🤔 
    opened by jamesray1 2
  • Bump url-parse from 1.4.7 to 1.5.1 in /beacon/wasm

    Bump url-parse from 1.4.7 to 1.5.1 in /beacon/wasm

    Bumps url-parse from 1.4.7 to 1.5.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.

    M6-dependencies 📣 
    opened by dependabot[bot] 1
  • Bump elliptic from 6.5.0 to 6.5.3 in /beacon/wasm

    Bump elliptic from 6.5.0 to 6.5.3 in /beacon/wasm

    Bumps elliptic from 6.5.0 to 6.5.3.

    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 1
  • Bump lodash from 4.17.15 to 4.17.19 in /beacon/wasm

    Bump lodash from 4.17.15 to 4.17.19 in /beacon/wasm

    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 1
  • Inter-blockchain

    Inter-blockchain

    Hi there, is one of the goals of using Substrate for an Eth 2 / shasper implementation to have cross-blockchain interoperability directly for Ethereum, rather than via other inter-blockchains like Polkadot, Cosmos, etc.? What is needed in order to do achieve that? (I'm not very familiar with Substrate yet, just rust-libp2p, particularly gossipsub).

    Z1-question 🙋‍♀️ 
    opened by jamesray1 1
  • Add a leading /** to /target in .gitignore

    Add a leading /** to /target in .gitignore

    This is needed to ignore the target directory that is created by cd runtime/wasm && ./build.sh && cd ../.. (as well as any potential future target directories).

    A2-insubstantial 👶 M2-config 📂 
    opened by jamesray1 1
  • Split extrinsics to inherent ones and attestations

    Split extrinsics to inherent ones and attestations

    Currently we have one giant extrinsic that covers everything fitting this category. Splitting this into inherent ones and attestations would make getting a proper transaction pool implementation easier.

    F6-refactor 📚 M4-lib-blockchain ⛓ Q2-easy 💃 
    opened by sorpaas 1
  • Bump url-parse from 1.4.7 to 1.5.3 in /beacon/wasm

    Bump url-parse from 1.4.7 to 1.5.3 in /beacon/wasm

    Bumps url-parse from 1.4.7 to 1.5.3.

    Commits
    • ad44493 [dist] 1.5.3
    • c798461 [fix] Fix host parsing for file URLs (#210)
    • 201034b [dist] 1.5.2
    • 2d9ac2c [fix] Sanitize only special URLs (#209)
    • fb128af [fix] Use 'null' as origin for non special URLs
    • fed6d9e [fix] Add a leading slash only if the URL is special
    • 94872e7 [fix] Do not incorrectly set the slashes property to true
    • 81ab967 [fix] Ignore slashes after the protocol for special URLs
    • ee22050 [ci] Use GitHub Actions
    • d2979b5 [fix] Special case the file: protocol (#204)
    • Additional commits viewable in compare view

    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 0
  • Bump ws from 6.2.1 to 6.2.2 in /beacon/wasm

    Bump ws from 6.2.1 to 6.2.2 in /beacon/wasm

    Bumps ws from 6.2.1 to 6.2.2.

    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 0
  • Bump dns-packet from 1.3.1 to 1.3.4 in /beacon/wasm

    Bump dns-packet from 1.3.1 to 1.3.4 in /beacon/wasm

    Bumps dns-packet from 1.3.1 to 1.3.4.

    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 0
  • Bump lodash from 4.17.15 to 4.17.21 in /beacon/wasm

    Bump lodash from 4.17.15 to 4.17.21 in /beacon/wasm

    Bumps lodash from 4.17.15 to 4.17.21.

    Commits
    • f299b52 Bump to v4.17.21
    • c4847eb Improve performance of toNumber, trim and trimEnd on large input strings
    • 3469357 Prevent command injection through _.template's variable option
    • ded9bc6 Bump to v4.17.20.
    • 63150ef Documentation fixes.
    • 00f0f62 test.js: Remove trailing comma.
    • 846e434 Temporarily use a custom fork of lodash-cli.
    • 5d046f3 Re-enable Travis tests on 4.17 branch.
    • aa816b3 Remove /npm-package.
    • d7fbc52 Bump to v4.17.19
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by bnjmnt4n, a new releaser for lodash since your current version.


    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 0
  • Bump ssri from 6.0.1 to 6.0.2 in /beacon/wasm

    Bump ssri from 6.0.1 to 6.0.2 in /beacon/wasm

    Bumps ssri from 6.0.1 to 6.0.2.

    Changelog

    Sourced from ssri's changelog.

    6.0.2 (2021-04-07)

    Bug Fixes

    • backport regex change from 8.0.1 (b30dfdb), closes #19

    Commits
    Maintainer changes

    This version was pushed to npm by nlf, a new releaser for ssri since your current version.


    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.

    M6-dependencies 📣 
    opened by dependabot[bot] 0
Owner
Parity Technologies
Solutions for a trust-free world
Parity Technologies
Polkadot Node Implementation

Polkadot Implementation of a https://polkadot.network node in Rust based on the Substrate framework. NOTE: In 2018, we split our implementation of "Po

Parity Technologies 6.5k Jan 2, 2023
A crate for working with Ethereum beacon chain light client protocol messages. `no_std` friendly!

eth-lightclient-rs A crate for working with Ethereum beacon chain light client protocol messages. no_std friendly! !! For hacking and experimentation

Willem Olding 12 Jan 6, 2023
Moca-hcho - Bluetooth 5 BLE formaldehyde/temperature/humidity sensor beacon

moca-hcho: Bluetooth 5 BLE formaldehyde/temperature/humidity sensor beacon moca-hcho is a simple Bluetooth Low Energy sensor beacon that uses a Sensir

Joonas Javanainen 5 Nov 25, 2022
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
Implementation of Proof of Existence consensus using Substrate Framework, Frame, Pallets, RUST

Substrate Node Template A fresh FRAME-based Substrate node, ready for hacking ?? Getting Started Follow the steps below to get started with the Node T

Vijayendra Gaur 1 Jun 8, 2022
Substrate blockchain generated with Substrate Startkit

Substrate Node Template A new FRAME-based Substrate node, ready for hacking ?? Getting Started This project contains some configuration files to help

HoangDuong 1 Oct 19, 2021
Substrate blockchain generated with Substrate Startkit

Substrate Node Template A new FRAME-based Substrate node, ready for hacking ?? Getting Started This project contains some configuration files to help

HoangDuong 1 Oct 19, 2021
Substrate blockchain generated with Substrate Startkit

Substrate Node Template A new FRAME-based Substrate node, ready for hacking ?? Getting Started This project contains some configuration files to help

Liam Parry 0 Nov 6, 2021
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
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 Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
Parity-Bridge — Bridge between any two ethereum-based networks

Deprecated Bridges This repo is deprecated. Originally it contained the ETH <> ETH-PoA bridge (see tumski tag). Later it was repurposed for ETH-PoA <>

Parity Technologies 314 Nov 25, 2022
The Parity Bitcoin client

The Parity Bitcoin client. Gitter Installing from source Installing the snap Running tests Going online Importing bitcoind database Command line inter

Parity Technologies 714 Dec 21, 2022
Parity-Bridge

Deprecated Bridges This repo is deprecated. Originally it contained the ETH <> ETH-PoA bridge (see tumski tag). Later it was repurposed for ETH-PoA <>

Parity Technologies 314 Nov 25, 2022
Parity-bridges-common - Collection of Useful Bridge Building Tools 🏗️

Parity Bridges Common This is a collection of components for building bridges. These components include Substrate pallets for syncing headers, passing

Parity Technologies 223 Jan 4, 2023
A GUI for NordVPN on Linux that maintains feature parity with the official clients, written with Rust and GTK.

Viking for NordVPN This project aims to provide a fully usable and feature-complete graphical interface for NordVPN on Linux. While it attempts to clo

Jacob Birkett 2 Oct 23, 2022
A visual novel engine that draws inspiration from RenPy and is meant to be a more performant replacement with feature parity.

VN Engine A visual novel engine that draws inspiration from RenPy and is meant to be a more performant replacement with feature parity. The engine is

Alexandros Panagiotakis 2 Sep 9, 2022
A visual novel engine that draws inspiration from RenPy and is meant to be a more performant replacement with feature parity.

VN Engine A visual novel engine that draws inspiration from RenPy and is meant to be a more performant replacement with feature parity. The engine is

Alexandros Panagiotakis 2 Sep 9, 2022
Polkadex - An Orderbook-based Decentralized Exchange using the Substrate Blockchain Framework.

What is Polkadex? ?? Polkadex is a Open Source, Decentralized Exchange Platform made using Substrate Blockchain Framework that provides traders with t

Polkadex 243 Dec 16, 2022
Node implementation for aleph blockchain built with Substrate framework

This repository contains the Rust implementation of Aleph Zero blockchain node based on the Substrate framework. Aleph Zero is an open-source layer 1

Aleph Zero Foundation 55 Dec 15, 2022