A privacy-preserving blockchain on Substrate

Overview

Zerochain

Build Status Gitter


Zerochain is a generic privacy-protecting layer on top of Substrate. It provides some useful substrate modules and toolkit for protecting user's privacy and sensitive data stored on chain. It is designed to get efficient zero-knowledge proving, reduce the on-chain storage cost and bring the flexibility for developing applications.

Have a look at Zerochain Book for usage and more information about using Zerochain.

Status

WARNING: Zerochain is alpha quality software, improvements and fixes are made frequently.

For now, only supported for the PoC of confidential payment inspired by Zether paper.

  • Balance for each account is encrypted
  • Transfer amount is encrypted

More features will be added... 💪 💪

Initial Setup

curl https://sh.rustup.rs -sSf | sh

rustup update stable
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
cargo +nightly install --git https://github.com/alexcrichton/wasm-gc

You will also need to install the following packages:

  • Mac:
brew install cmake pkg-config openssl git llvm
  • Linux:
sudo apt install cmake pkg-config libssl-dev git clang libclang-dev

Building

git clone [email protected]:LayerXcom/zero-chain.git
cd zero-chain
./build.sh
cargo build --release

Usage and Tutorial

Documented in Zerochain Book.

Related Repositories

Documentations

References

Contributing

  • Feel free to submit your own issues and PRs
  • For further discussions and questions talk to us on Gitter

Maintainers

Comments
  • Compiled file in repository

    Compiled file in repository

    Hello~first in project. Nice to meet you. When project builded, seems compiled file is indicated as changed file in git repository.

    modified:    runtime/wasm/target/wasm32-unknown-unknown/release/zerochain_runtime_wasm.compact.wasm
    

    Would this needed to be removed?

    opened by kination 5
  • [WIP]Feature/fee

    [WIP]Feature/fee

    I tried to fix circuit_transfer.rs for fee feature, but my code failed to pass the test test_circuit_transfer() at assert!(cs.is_satisfied()); (line 473) .

    I want the circuit to pass a zk-proof calculated for the balance for which the fee and transfer amount have been collected.

    I intend to implement fee in the same way as value, but something seems to be wrong. Please look at the code for advice. Thank you.

    ref:

    もう直接、クライアントでEnc(fee)作って、remaining_balance = balance - amont - feeでzkして、Enc(fee), Txに乗っけて、オンチェーンでwithdrawするっていう方向性で開発いける?

    opened by zakimal 4
  • error[E0432]: unresolved import `syn::token::CustomKeyword`

    error[E0432]: unresolved import `syn::token::CustomKeyword`

    When I ran cargo install --force --path ./ to build, I ran into the following error:

    error[E0432]: unresolved import `syn::token::CustomKeyword`
      --> ~/.cargo/git/checkouts/substrate-69260aa4cd850e18/2cdae73/srml/support/procedural/tools/src/syn_ext.rs:26:5
       |
    26 | use syn::token::CustomKeyword;
       |     ^^^^^^^^^^^^^^^^^^^^^^^^^ no `CustomKeyword` in `token`
    
    error: aborting due to previous error
    

    I follow the instructions from https://layerxcom.github.io/zerochain-book/ch01-01-installation.html. Can anyone help take a look?

    opened by tlkahn 3
  • Can't debug send.

    Can't debug send.

    I created the wallet. It showed up the error when I executed the ./target/release/zface debug send.

    ➜  zero-chain git:(master) ✗ ./target/release/zface wallet list
    * alice: 5EDB7hPS8JibuftAxeb5r4UvwFmk8d5f8wwLkNpnGeTxwH2c
    ➜  zero-chain git:(master) ✗ ./target/release/zface debug send -t 5EDB7hPS8JibuftAxeb5r4UvwFmk8d5f8wwLkNpnGeTxwH2c -a 100
    Preparing paramters...
    ERROR 2019-12-23T17:22:09Z: ws::handler: WS Error <Io(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" })>
    thread 'main' panicked at 'must not be empty: RecvError', src/libcore/result.rs:1188:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    
    opened by ashWhiteHat 2
  • Make correct sig hash for the compatibility with substrate

    Make correct sig hash for the compatibility with substrate

    Need to be compatible with the signed data field between signing and verifying.

    In unchecked_mortal_compact_extrinsic, the signature verification is implemented here. https://github.com/paritytech/substrate/blob/1997487ec082f436e4c3279402d4528d67c861be/core/sr-primitives/src/generic/unchecked_mortal_compact_extrinsic.rs#L85-L96

    In oo7, the signing scheme is implemented here. https://github.com/paritytech/oo7/blob/79856e56658ad2b71115af5f682ac5d71a4f9ab3/packages/oo7-substrate/src/transact.js#L27-L42

    opened by osuketh 2
  • Bump smallvec from 0.6.10 to 0.6.13

    Bump smallvec from 0.6.10 to 0.6.13

    Bumps smallvec from 0.6.10 to 0.6.13.

    Release notes

    Sourced from smallvec's releases.

    v0.6.13

    • Use the maybe-unit crate in place of soon-to-be-deprecated std::mem::uninitialized (#180). When built with Rust 1.36 or later, this fixes a source of undefined behavior. It also fixes deprecation warnings in Rust 1.39 and later, and test failures when run in MIRI. In Rust 1.35 and earlier it provides some safety improvements but does not completely eliminate undefined behavior. (However, we are not aware of any cases where the undefined behavior causes bugs in practice in those toolchains.)

    v0.6.12

    • Move code using default fn into its own module (#161).

    v0.6.11

    • The unstable alloc feature is no longer needed. This crate can now build with the std feature disabled on stable Rust 1.36 or later (#159).
    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 
    opened by dependabot[bot] 1
  • Removed some warnings

    Removed some warnings

    ■First commit Just remove the unnecessary semicolon.

    ■Second commit The into_iter() return the reference currently but this function will stop returning reference because of upcoming breaking change following issue so it won't be able to use *. Replacing with iter(), it keeps returning reference. https://github.com/rust-lang/rust/issues/66145

    ■Third commit We can use ? operator instead of try!. The RFC about this is following. https://rust-lang.github.io/rfcs/1859-try-trait.html#desugaring-and-the-try-trait

    ■Fourth commit The alloc crate is stable since Version 1.36.0 (2019-07-04) release so we don't have to require the attribute.

    opened by ashWhiteHat 1
  • Dependency problem

    Dependency problem

    I'm getting a dependency problem when I run

    cargo install --force --path zface

    494 |           let mini_key: MiniSecretKey = mini_secret_from_entropy(entropy, password.unwrap_or(""))
        |  _______________________________________^
    495 | |             .expect("32 bytes can always build a key; qed");
        | |___________________________________________________________^ expected struct `schnorrkel::keys::MiniSecretKey`, found a different struct `schnorrkel::keys::MiniSecretKey`
        |
        = note: expected type `schnorrkel::keys::MiniSecretKey` (struct `schnorrkel::keys::MiniSecretKey`)
                   found type `schnorrkel::keys::MiniSecretKey` (struct `schnorrkel::keys::MiniSecretKey`)
    note: Perhaps two different versions of crate `schnorrkel` are being used?
       --> /home/ericfindlay/.cargo/git/checkouts/substrate-69260aa4cd850e18/f42927b/core/primitives/src/sr25519.rs:494:33
    

    The schnorrkel dependency in substrate/core/primitives was changed to 0.1.1 6 days ago. Its just a guess but maybe you need to update your patch-zerochain branch dependency on schnorrkel too?

    opened by ghost 1
  • Vulnerable crate found in memoffset

    Vulnerable crate found in memoffset

    By cargo audit,

    error: Vulnerable crates found!
    
    ID:	 RUSTSEC-2019-0011
    Crate:	 memoffset
    Version: 0.2.1
    Date:	 2019-07-16
    URL:	 https://github.com/Gilnaa/memoffset/issues/9#issuecomment-505461490
    Title:	 Flaw in offset_of and span_of causes SIGILL, drops uninitialized memory of arbitrary type on panic in client code
    Solution: upgrade to: >= 0.5.0
    
    error: 1 vulnerability found!
    
    bug 
    opened by osuketh 1
  • Fix something wrong with the pairing test for a swap of the endian

    Fix something wrong with the pairing test for a swap of the endian

    https://github.com/LayerXcom/zero-chain/blob/49eb9d1e8d51932829fba2d23f7fff7b937e65f9/pairing/src/tests/repr.rs#L38-L54

    got the following error.

    thread 'bls12_381::fq::fq_repr_tests' panicked at 'assertion failed: `(left == right)`
      left: `FqRepr([5457830654796382876, 14052294085650741142, 9037930377914938456, 17127803672399921366, 8651480755814397574, 10649476550251866400])`,
     right: `FqRepr([10649476550251866400, 8651480755814397574, 17127803672399921366, 9037930377914938456, 14052294085650741142, 5457830654796382876])`', pairing/src/tests/repr.rs:53:13
    note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    test bls12_381::fq::fq_repr_tests ... FAILED
    
    opened by osuketh 1
  • define type

    define type

    I defined the type to fix the following error.

    error[E0282]: type annotations needed
       --> modules/indices/src/lib.rs:128:7
        |
    128 |         let i = (try_index % enum_set_size).as_();
        |             ^ consider giving `i` a type
    
    error[E0282]: type annotations needed
       --> modules/indices/src/lib.rs:156:8
        |
    156 |             let item_index = (try_index % enum_set_size).as_();
        |                 ^^^^^^^^^^ consider giving `item_index` a type
    
    error: aborting due to 2 previous errors
    
    For more information about this error, try `rustc --explain E0282`.
    error: could not compile `srml-indices`
    
    To learn more, run the command again with --verbose.
    warning: build failed, waiting for other jobs to finish...
    error: build failed
    

    I defined set_index.as_() as usize to avoid following error.

    error[E0282]: type annotations needed
       --> modules/indices/src/lib.rs:179:45
        |
    179 |         let index = T::AccountIndex::sa(set_index.as_() as usize * ENUM_SET_SIZE + set.len());
        |                                         ----------^^^--
        |                                         |         |
        |                                         |         cannot infer type for type parameter `T` declared on the trait `As`
        |                                         this method call resolves to `T`
        |
        = note: type must be known at this point
    
    error: aborting due to previous error
    
    For more information about this error, try `rustc --explain E0282`.
    error: could not compile `srml-indices`
    
    opened by ashWhiteHat 0
  • Bump smallvec from 0.6.10 to 0.6.14

    Bump smallvec from 0.6.10 to 0.6.14

    Bumps smallvec from 0.6.10 to 0.6.14.

    Release notes

    Sourced from smallvec's releases.

    v0.6.14

    • Fix a possible buffer overflow in insert_many (#252, #254).

    v0.6.13

    • Use the maybe-unit crate in place of soon-to-be-deprecated std::mem::uninitialized (#180). When built with Rust 1.36 or later, this fixes a source of undefined behavior. It also fixes deprecation warnings in Rust 1.39 and later, and test failures when run in MIRI. In Rust 1.35 and earlier it provides some safety improvements but does not completely eliminate undefined behavior. (However, we are not aware of any cases where the undefined behavior causes bugs in practice in those toolchains.)

    v0.6.12

    • Move code using default fn into its own module (#161).

    v0.6.11

    • The unstable alloc feature is no longer needed. This crate can now build with the std feature disabled on stable Rust 1.36 or later (#159).
    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 
    opened by dependabot[bot] 0
  • Bump net2 from 0.2.33 to 0.2.37 in /runtime/wasm

    Bump net2 from 0.2.33 to 0.2.37 in /runtime/wasm

    Bumps net2 from 0.2.33 to 0.2.37.

    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 
    opened by dependabot[bot] 0
  • Bump net2 from 0.2.33 to 0.2.37

    Bump net2 from 0.2.33 to 0.2.37

    Bumps net2 from 0.2.33 to 0.2.37.

    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 
    opened by dependabot[bot] 0
  • Bump miow from 0.2.1 to 0.2.2

    Bump miow from 0.2.1 to 0.2.2

    Bumps miow from 0.2.1 to 0.2.2.

    Commits
    • 6fd7b9c Bump version to 0.2.2
    • 550efc2 Merge branch 'fix-sockaddr-convertion-v0.2.x' into 0.2.x
    • ca8db53 Stop using from_ne_bytes to be compatible with Rust < 1.32.0
    • 3e217e3 Bump net2 dep to 0.2.36 without invalid SocketAddr convertion
    • 27b77cc Adapt to winapi 0.2
    • 2783715 Safely convert SocketAddr into raw SOCKADDR
    • f6662ef Clarify wording of license information in README.
    • See full diff 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.

    dependencies 
    opened by dependabot[bot] 0
  • Bump miow from 0.2.1 to 0.2.2 in /runtime/wasm

    Bump miow from 0.2.1 to 0.2.2 in /runtime/wasm

    Bumps miow from 0.2.1 to 0.2.2.

    Commits
    • 6fd7b9c Bump version to 0.2.2
    • 550efc2 Merge branch 'fix-sockaddr-convertion-v0.2.x' into 0.2.x
    • ca8db53 Stop using from_ne_bytes to be compatible with Rust < 1.32.0
    • 3e217e3 Bump net2 dep to 0.2.36 without invalid SocketAddr convertion
    • 27b77cc Adapt to winapi 0.2
    • 2783715 Safely convert SocketAddr into raw SOCKADDR
    • f6662ef Clarify wording of license information in README.
    • See full diff 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.

    dependencies 
    opened by dependabot[bot] 0
  • Bump smallvec from 0.6.10 to 0.6.14 in /runtime/wasm

    Bump smallvec from 0.6.10 to 0.6.14 in /runtime/wasm

    Bumps smallvec from 0.6.10 to 0.6.14.

    Release notes

    Sourced from smallvec's releases.

    v0.6.14

    • Fix a possible buffer overflow in insert_many (#252, #254).

    v0.6.13

    • Use the maybe-unit crate in place of soon-to-be-deprecated std::mem::uninitialized (#180). When built with Rust 1.36 or later, this fixes a source of undefined behavior. It also fixes deprecation warnings in Rust 1.39 and later, and test failures when run in MIRI. In Rust 1.35 and earlier it provides some safety improvements but does not completely eliminate undefined behavior. (However, we are not aware of any cases where the undefined behavior causes bugs in practice in those toolchains.)

    v0.6.12

    • Move code using default fn into its own module (#161).

    v0.6.11

    • The unstable alloc feature is no longer needed. This crate can now build with the std feature disabled on stable Rust 1.36 or later (#159).
    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 
    opened by dependabot[bot] 0
Releases(v0.2)
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
Open-source tool to enforce privacy & security best-practices on Windows and macOS, because privacy is sexy 🍑🍆

privacy-sexy Open-source tool to enforce privacy & security best-practices on Windows and MacOs, because privacy is sexy ?? ?? privacy-sexy is a data-

Subconscious Compute 3 Oct 20, 2022
Substrate: The platform for blockchain innovators

Substrate · Substrate is a next-generation framework for blockchain innovation ?? . Trying it out Simply go to substrate.dev and follow the installati

Parity Technologies 7.7k Dec 30, 2022
An Ethereum compatible Substrate blockchain for bounties and governance for the Devcash community.

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

null 4 Mar 30, 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
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
Substrate: The platform for blockchain innovators

Substrate · Substrate is a next-generation framework for blockchain innovation ?? . Trying it out Simply go to docs.substrate.io and follow the instal

Viktor Karazhov 1 Jan 8, 2022
xx network Substrate based blockchain node

xx network Substrate based blockchain node Rust Setup First, complete the basic Rust setup instructions. MacOS users: setup to compile for Linux Befor

xx network 11 Dec 20, 2022
The Data Highway Substrate-based blockchain node.

DataHighway-Parachain, a parachain on the Polkadot network. Planned features include a decentralized LPWAN roaming hub for LoRaWAN IoT devices and network operator roaming agreements, participative mining, an inter-chain data market, and DAO governance.

DataHighway 11 Dec 2, 2022
Selendra is a multichains interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications.

Selendra An interoperable nominated Proof-of-Stake network for developing and running Substrate-based and EVM compatible blockchain applications. Read

Selendra 16 Nov 29, 2022
This is a Order-preserving encryption (OPE) lib inspired by cryptdb's ope implementation.

Ope in rust This is an Order-preserving encryption (OPE) lib inspired by cryptdb's ope implementation. It is a pure rust implementation, no c dependen

Sentclose 8 Jul 19, 2023
zkSync: trustless scaling and privacy engine for Ethereum

zkSync: scaling and privacy engine for Ethereum zkSync is a scaling and privacy engine for Ethereum. Its current functionality scope includes low gas

Matter Labs 1.9k Jan 1, 2023
Opendp - The core library of differential privacy algorithms powering the OpenDP Project.

OpenDP The OpenDP Library is a modular collection of statistical algorithms that adhere to the definition of differential privacy. It can be used to b

OpenDP 176 Dec 27, 2022
Nym provides strong network-level privacy against sophisticated end-to-end attackers, and anonymous transactions using blinded, re-randomizable, decentralized credentials.

The Nym Privacy Platform The platform is composed of multiple Rust crates. Top-level executable binary crates include: nym-mixnode - shuffles Sphinx p

Nym 653 Dec 26, 2022
Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transactions of your non-custodial wallets on a provider of your choice, all while respecting your privacy

Bitcoin Push Notification Service (BPNS) Description Bitcoin Push Notification Service (BPNS) allows you to receive notifications of Bitcoin transacti

BPNS 1 May 2, 2022
Onlyfans-type web service based on TOR with maximum privacy features.

onionfans Onlyfans-type web service based on TOR with maximum privacy features. Features "Vanishing" single-use feed CDN links Landing page No JavaScr

Dowland Aiello 8 Sep 14, 2022
Safeguard your financial privacy with zero-knowledge proofs.

Spinner The Spinner project (https://spinner.cash) takes a privacy first approach to protect users crypto assets. It is a layer-2 protocol built on th

Spinner 21 Dec 28, 2022