zkSync: trustless scaling and privacy engine for Ethereum

Overview

zkSync: scaling and privacy engine for Ethereum

Logo

Live on Mainnet Live on Rinkeby Live on Ropsten Join the technical discussion chat at https://gitter.im/matter-labs/zksync

zkSync is a scaling and privacy engine for Ethereum. Its current functionality scope includes low gas transfers of ETH and ERC20 tokens in the Ethereum network.

Description

zkSync is built on ZK Rollup architecture. ZK Rollup is an L2 scaling solution in which all funds are held by a smart contract on the mainchain, while computation and storage are performed off-chain. For every Rollup block, a state transition zero-knowledge proof (SNARK) is generated and verified by the mainchain contract. This SNARK includes the proof of the validity of every single transaction in the Rollup block. Additionally, the public data update for every block is published over the mainchain network in the cheap calldata.

This architecture provides the following guarantees:

  • The Rollup validator(s) can never corrupt the state or steal funds (unlike Sidechains).
  • Users can always retrieve the funds from the Rollup even if validator(s) stop cooperating because the data is available (unlike Plasma).
  • Thanks to validity proofs, neither users nor a single other trusted party needs to be online to monitor Rollup blocks in order to prevent fraud.

In other words, ZK Rollup strictly inherits the security guarantees of the underlying L1.

To learn how to use zkSync, please refer to the zkSync SDK documentation.

Development Documentation

The following guides for developers are available:

Projects

Changelog

Since the repository is big and is split into independent components, there is a different changelog for each of its major parts:

License

zkSync is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, LICENSE-MIT for details.

Comments
  • Axel has been upgraded to version 2.17.10, but SSL is still reporting an error Initializing download: https://universal-setup.ams3.digitaloceanspaces.com/setup_2%5E20.key SSL error: certificate verify failed (null) Error: Child process exited with code 1

    Axel has been upgraded to version 2.17.10, but SSL is still reporting an error Initializing download: https://universal-setup.ams3.digitaloceanspaces.com/setup_2%5E20.key SSL error: certificate verify failed (null) Error: Child process exited with code 1

    Axel has been upgraded to version 2.17.10, but SSL is still reporting an error Initializing download: https://universal-setup.ams3.digitaloceanspaces.com/setup_2%5E20.key SSL error: certificate verify failed (null) Error: Child process exited with code 1 image

    opened by simagui 8
  • CORS errors on checkout.zksync.io

    CORS errors on checkout.zksync.io

    Hi, I'm trying to check out a gitcoin grants donation via zksync, but I'm getting Network error.

    It looks like the reason is CORS errors showing up in my terminal:

    Access to XMLHttpRequest at 'https://api.zksync.io/jsrpc' from origin 'https://checkout.zksync.io' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

    opened by fafrd 8
  • "Error: zkSync API response error: code 103; message: Tx is incorrect"

    Getting an invalid tx error after the transfer signature request.

    Screenshot from 2020-11-10 16-12-01

    wallet: Authereum via WalletConnect network: rinkeby account (contract-based-account): 0xe0DBe2703FB3fC9Cd36fb5717437e738F4002681 message (hex): 0x5472616e7366657220302e30303031204554480a546f3a203078346363613566326630313734366231633133636137613364616230343632643232353739356433610a4e6f6e63653a2033350a4665653a20302e3030303031333338204554480a4163636f756e742049643a203334 message (utf8):

    Transfer 0.0001 ETH
    To: 0x4cca5f2f01746b1c13ca7a3dab0462d225795d3a
    Nonce: 35
    Fee: 0.00001338 ETH
    Account Id: 34
    

    signature: 0x1a1997812a419ae57e68d8f4d3f375e0b7b2a036f0a58e838bbd5ec931dfddd80d0875b60940248b043e41c1239e5fc06a6e940b610c13431130fd9a082f2e7d1c

    The isValidSignature on-chain check appears to be valid:

    request:

    {"id":2,"jsonrpc":"2.0","params":[{"data":"0x20c13b0b000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000006f5472616e7366657220302e30303031204554480a546f3a203078346363613566326630313734366231633133636137613364616230343632643232353739356433610a4e6f6e63653a2033350a4665653a20302e3030303031333338204554480a4163636f756e742049643a203334000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000411a1997812a419ae57e68d8f4d3f375e0b7b2a036f0a58e838bbd5ec931dfddd80d0875b60940248b043e41c1239e5fc06a6e940b610c13431130fd9a082f2e7d1c00000000000000000000000000000000000000000000000000000000000000","to":"0xe0dbe2703fb3fc9cd36fb5717437e738f4002681"},"latest"],"method":"eth_call"}
    

    response:

    {"jsonrpc":"2.0","id":2,"result":"0x20c13b0b00000000000000000000000000000000000000000000000000000000"}
    

    Thanks in advance for any help

    opened by miguelmota 8
  • Authorizing new public key just works on Ropsten and not on the mainnet !!

    Authorizing new public key just works on Ropsten and not on the mainnet !!

    Here is my code :


    const walletPrivateKey = new ethers.Wallet(PrivateKey) ;
    const ethWallet = await walletPrivateKey.connect(ethersProvider);
    const syncWallet = await zksync.Wallet.fromEthSigner(ethWallet, syncProvider);
    
    if (! await syncWallet.isSigningKeySet()) {
        const onchainAuthTransaction = await syncWallet.onchainAuthSigningKey();
        // Wait till transaction is committed on ethereum.
        await onchainAuthTransaction.wait();
    
        const changePubkey= await syncWallet.setSigningKey({
            feeToken: "ETH",
            fee: ethers.utils.parseEther("0.001")
        });
        // Wait till transaction is committed 
        const receipt = await changePubkey.awaitReceipt();
    }
    

    Error for the same code on mainnet network :

    Error: insufficient funds for intrinsic transaction cost (error={"reason":"processing response error","code":"SERVER_ERROR","body":"{"jsonrpc":"2.0","id":46,"error":{"code":-32000,"message":"insufficient funds for gas * price + value"}}","error":{"code":-32000},"requestBody":"{"method":"eth_sendRawTransaction","params": ......


    syncWallet.onchainAuthSigningKey(); this function perfectly works on ropsten but not on mainnet! is this issue arising from my code or library somehow has an issue ? thanks for your help in advance.

    opened by RasoulKhajavi 8
  • question about source code

    question about source code

    I am reading the source code of matter-lab/zksync to understand it better and then join you guys to build this project.

    But I have some questions.

    I want to know which branch is more suitable for reading and learning, master branch or dev branch, can you tell me the difference between them?

    Can you explain this to me?

    And another issue, there is a few information about zksync source code, so I think the solution is to encourage more people write articles to explain how exactly zksync works

    Screen Shot 2022-04-29 at 14 48 55

    @popzxc @StanislavBreadless

    opened by LuozhuZhang 7
  • Interested in the Instant Confirmation Mechanism

    Interested in the Instant Confirmation Mechanism

    Hello, I'm interested in the Instant Confirmation Mechanism, and want to know more details about it. Where can I get the doc or the code? Waiting for your reply, thank you!

    opened by SipengXie 7
  • data_restore will fail when the length of Verified event is longer than Committed event

    data_restore will fail when the length of Verified event is longer than Committed event

    https://github.com/matter-labs/zksync/blob/59e6def837099021169c35b7db7d7641f1a03b3b/core/bin/data_restore/src/events_state.rs#L364-L374

    when self.verified_events.len() > self.committed_events.len() self.committed_events[0..count_to_get].to_vec() will overflow.

    I meet this condition when restore databae.

    I will give a bug fix.

    opened by yaanhyy 7
  • Unable to depositToSyncFromEthereum

    Unable to depositToSyncFromEthereum

    I'm trying to transfer eth and getting this error

    `async function asyncCall() { const syncWallet = zksync.Wallet.fromEthSigner(ethWallet, syncProvider); const object = await syncWallet; console.log(object.address());

    const deposit = await object.depositToSyncFromEthereum({ depositTo: object.address(), token: 'ETH', amount: ethers.utils.parseEther('0.1') }); }`

    UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'mainContract' of undefined at Wallet. (/Users/aequalis/Documents/zksync/node_modules/zksync/build/wallet.js:429:92) at Generator.next () at fulfilled (/Users/aequalis/Documents/zksync/node_modules/zksync/build/wallet.js:5:58) at processTicksAndRejections (internal/process/task_queues.js:97:5)

    opened by elango501 7
  • Github prize: Blanc checks (payment links) on zkSync

    Github prize: Blanc checks (payment links) on zkSync

    Prize Title

    Cheap blanc checks / payment links dapp built with zkSync.

    Prize Bounty

    500 DAI.

    Challenge Description

    Introduction

    There is an open-source coder Alice. She earns her living via donations. She receives payments on Ethereum, but to make the process of donating simple, Alice wants to put on her project's GitHub page a donation payment link instead of her address. This way, the users can jump straight into donating by clicking the link.

    Alice does not want to pay high fees and does not want her users to pay them either, so she uses zkSync as the Ethereum scaling solution of her choice. But how can she generate such a payment link?

    The challenge

    Your task is to create a website that can generate zkSync payment links. Your website should be able to do the following:

    Given an Ethereum address and maybe some additional information, your website should generate a payment link, which encodes the address of the transaction's recipient (and possibly some additional information). Whenever someone opens the link, the user will go through the zkSync checkout process and will donate to the provided zkSync account.

    The library that you must use to start the checkout process is described here.

    Submission Requirements

    • The solution must use the zkSync checkout library. Here is the link to the docs.
    • It must be secure, i.e. no exposure of private keys, etc.
    • A link to the demo of your service must be included in the submission. You might also attach the link to the GitHub repo of your solution.
    • You must include the link to the GitHub page with the source code, containing README.md with the description of your solution in English.

    Judging Criteria

    • UI quality.
    • The UX should be smooth and delightful.
    • Usability, i.e., it should be easy for both senders and recipients to use your service.
    • Universality, i.e. there should be many use-cases for your service. Donations is only one example. There might also be shops, that would want to use your website. The bigger the target audience is, the better!
    opened by gluk64 7
  • Feedback about an address that needs to be activated multiple times to use the transfer and mint nft functions

    Feedback about an address that needs to be activated multiple times to use the transfer and mint nft functions

    I often use the zksync network for transfers and mint nft, but I found that in the past few months, the system will require me to activate my account multiple times to use the transfer function. This is different from the advertised account that only needs to be activated once. I hope to check out what caused this error My address is 0x6eCe332E1324FB0C080a6364e84171EEc1571f5f thank you very much

    opened by age-wang 6
  • zk init fails

    zk init fails

    Hi, when I run zk init, in the last step this happens:

    [100%] Built target wasm-opt
    wasm2js(38848,0x114345e00) malloc: *** error for object 0x7fd9b7820000: pointer being freed was not allocated
    wasm2js(38848,0x114345e00) malloc: *** set a breakpoint in malloc_error_break to debug
    ./build.sh: line 24: 38848 Abort trap: 6           ../binaryen/bin/wasm2js ./dist/zksync-crypto-bundler_bg.wasm -o $ASM
    

    Another prove I did:

    within the sdk/binaryen folder, run:

    python3 check.py

    [ checking wasm-opt -o notation... ]
    
    executing:  /Users/julian/workspace/rskj-projects/zk/zksync/sdk/binaryen/bin/wasm-opt /Users/julian/workspace/rskj-projects/zk/zksync/sdk/binaryen/test/hello_world.wat -o a.wat -S
    warning: no passes specified, not doing any work
    wasm-opt(39600,0x1062f5e00) malloc: *** error for object 0x7f92b1c0ab60: pointer being freed was not allocated
    wasm-opt(39600,0x1062f5e00) malloc: *** set a breakpoint in malloc_error_break to debug
    Traceback (most recent call last):
    

    Here my clang version:

    clang --version
    Apple clang version 12.0.5 (clang-1205.0.22.11)
    Target: x86_64-apple-darwin20.5.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    
    gcc --version
    Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1
    Apple clang version 12.0.5 (clang-1205.0.22.11)
    Target: x86_64-apple-darwin20.5.0
    Thread model: posix
    InstalledDir: /Library/Developer/CommandLineTools/usr/bin
    

    The OS is MacOS Big Sur 11.5.1

    (lldb) target create "bin/wasm-opt"
    Current executable set to '/Users/julian/workspace/rskj-projects/zk/zksync/sdk/binaryen/bin/wasm-opt' (x86_64).
    (lldb) b malloc_error_break
    Breakpoint 1: where = libsystem_malloc.dylib`malloc_error_break, address = 0x00007fff2014f9ab
    (lldb) run test/hello_world.wat -o a.wat -S
    Process 5197 launched: '/Users/julian/workspace/rskj-projects/zk/zksync/sdk/binaryen/bin/wasm-opt' (x86_64)
    warning: no passes specified, not doing any work
    wasm-opt(5197,0x100920e00) malloc: *** error for object 0x107015e00: pointer being freed was not allocated
    wasm-opt(5197,0x100920e00) malloc: *** set a breakpoint in malloc_error_break to debug
    Process 5197 stopped
    * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
        frame #0: 0x00007fff2034b9ab libsystem_malloc.dylib`malloc_error_break
    libsystem_malloc.dylib`malloc_error_break:
    ->  0x7fff2034b9ab <+0>: pushq  %rbp
        0x7fff2034b9ac <+1>: movq   %rsp, %rbp
        0x7fff2034b9af <+4>: nop
        0x7fff2034b9b0 <+5>: nopl   (%rax)
    Target 0: (wasm-opt) stopped.
    
    opened by julianlen 6
  • Add comments to improve code readability

    Add comments to improve code readability

    This PR adds comments to the code to improve its readability and understandability. In open source projects, it is important to have well-documented code so that other contributors can easily understand the intent and purpose of the code. By adding comments, we can help ensure that the code is maintainable and can be easily modified and extended by others in the future.

    opened by venglov 0
  • zk init can't find some file?

    zk init can't find some file?

    The following error occurs when I run zk init Finished release [optimized] target(s) in 0.08s [WARN]: :-) origin crate has no README [INFO]: License key is set in Cargo.toml but no LICENSE file(s) were found; Please add the LICENSE file(s) to your project directory [INFO]: Installing wasm-bindgen... [INFO]: Optimizing wasm binaries withwasm-opt`... [INFO]: Optional field missing from Cargo.toml: 'description'. This is not necessary, but recommended [INFO]: :-) Done in 2.40s [INFO]: :-) Your wasm pkg is ready to publish at /home/march/桌面/code/zksync-master/sdk/zksync-crypto/node-dist. [WARN]: :-) There's a newer version of wasm-pack available, the new version is: 0.10.3, you are using: 0.10.1. To update, navigate to: https://rustwasm.github.io/wasm-pack/installer/ CMake Warning: Ignoring extra path from command line:

    "."

    CMake Error: The source directory "/home/march/桌面/code/zksync-master/sdk/binaryen" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. ./build.sh:行29: ../binaryen/bin/wasm2js: 没有那个文件或目录error Command failed with exit code 127. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command failed. Exit code: 127 Command: /usr/bin/node Arguments: /usr/lib/node_modules/yarn/lib/cli.js build Directory: /home/march/桌面/code/zksync-master/sdk/zksync-crypto Output:

    info Visit https://yarnpkg.com/en/docs/cli/workspace for documentation about this command. error Command failed with exit code 127. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. error Command failed with exit code 127. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. Error: Child process exited with code 127 `

    I'm sure the dependency package version is correct.

    opened by fawkesLi-lhh 1
  • Configure Renovate

    Configure Renovate

    Mend Renovate

    Welcome to Renovate! This is an onboarding PR to help you understand and configure settings before regular Pull Requests begin.

    🚦 To activate Renovate, merge this Pull Request. To disable Renovate, simply close this Pull Request unmerged.


    Detected Package Files

    • core/bin/add_seq_no/Cargo.toml (cargo)
    • core/bin/block_revert/Cargo.toml (cargo)
    • core/bin/data_restore/Cargo.toml (cargo)
    • core/bin/key_generator/Cargo.toml (cargo)
    • core/bin/parse_pub_data/Cargo.toml (cargo)
    • core/bin/prover/Cargo.toml (cargo)
    • core/bin/remove_proofs/Cargo.toml (cargo)
    • core/bin/server/Cargo.toml (cargo)
    • core/bin/tree_cache_updater/Cargo.toml (cargo)
    • core/bin/zksync_api/Cargo.toml (cargo)
    • core/bin/zksync_core/Cargo.toml (cargo)
    • core/bin/zksync_eth_sender/Cargo.toml (cargo)
    • core/bin/zksync_event_listener/Cargo.toml (cargo)
    • core/bin/zksync_forced_exit_requests/Cargo.toml (cargo)
    • core/bin/zksync_witness_generator/Cargo.toml (cargo)
    • core/lib/api_client/Cargo.toml (cargo)
    • core/lib/api_types/Cargo.toml (cargo)
    • core/lib/balancer/Cargo.toml (cargo)
    • core/lib/basic_types/Cargo.toml (cargo)
    • core/lib/circuit/Cargo.toml (cargo)
    • core/lib/config/Cargo.toml (cargo)
    • core/lib/contracts/Cargo.toml (cargo)
    • core/lib/crypto/Cargo.toml (cargo)
    • core/lib/eth_client/Cargo.toml (cargo)
    • core/lib/eth_signer/Cargo.toml (cargo)
    • core/lib/gateway_watcher/Cargo.toml (cargo)
    • core/lib/mempool/Cargo.toml (cargo)
    • core/lib/notifier/Cargo.toml (cargo)
    • core/lib/prometheus_exporter/Cargo.toml (cargo)
    • core/lib/prover_utils/Cargo.toml (cargo)
    • core/lib/state/Cargo.toml (cargo)
    • core/lib/storage/Cargo.toml (cargo)
    • core/lib/storage/db_test_macro/Cargo.toml (cargo)
    • core/lib/token_db_cache/Cargo.toml (cargo)
    • core/lib/types/Cargo.toml (cargo)
    • core/lib/utils/Cargo.toml (cargo)
    • core/lib/vlog/Cargo.toml (cargo)
    • sdk/zksync-crypto/Cargo.toml (cargo)
    • sdk/zksync-rs/Cargo.toml (cargo)
    • docker-compose-runner.yml (docker-compose)
    • docker-compose.yml (docker-compose)
    • infrastructure/exit-tool/docker-compose.yml (docker-compose)
    • docker/data-restore/Dockerfile (dockerfile)
    • docker/dev-liquidity-token-watcher/Dockerfile (dockerfile)
    • docker/dev-ticker/Dockerfile (dockerfile)
    • docker/event-listener/Dockerfile (dockerfile)
    • docker/exit-tool/Dockerfile (dockerfile)
    • docker/geth/Dockerfile (dockerfile)
    • docker/keybase-secrets/Dockerfile (dockerfile)
    • docker/prover/Dockerfile (dockerfile)
    • docker/runner/Dockerfile (dockerfile)
    • docker/server/Dockerfile (dockerfile)
    • docker/zk-environment/Dockerfile (dockerfile)
    • .github/workflows/ci.yml (github-actions)
    • .github/workflows/deploy.chat.yml (github-actions)
    • .github/workflows/deploy.rinkeby-beta.yml (github-actions)
    • .github/workflows/deploy.yml (github-actions)
    • .github/workflows/loadtest.yml (github-actions)
    • .github/workflows/npm.publish-packages.yml (github-actions)
    • .github/workflows/server.update-config-dispatch.yml (github-actions)
    • .github/workflows/server.update-config.yml (github-actions)
    • .github/workflows/setup.runtime.yml (github-actions)
    • .github/workflows/zk-environment.publish.yml (github-actions)
    • contracts/package.json (npm)
    • infrastructure/api-docs/package.json (npm)
    • infrastructure/exit-tool/perform_exodus/package.json (npm)
    • infrastructure/reading-tool/package.json (npm)
    • infrastructure/token-lists-manager/package.json (npm)
    • infrastructure/zk/package.json (npm)
    • package.json (npm)
    • sdk/zksync-crypto/package.json (npm)
    • sdk/zksync.js/package.json (npm)

    Configuration

    🔡 Renovate has detected a custom config for this PR. Feel free to ask for help if you have any doubts and would like it reviewed.

    Important: Now that this branch is edited, Renovate can't rebase it from the base branch any more. If you make changes to the base branch that could impact this onboarding PR, please merge them manually.

    What to Expect

    With your current configuration, Renovate will create 94 Pull Requests:

    Update Rust crate actix-cors to 0.6.4
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-cors-0.x
    • Merge into: master
    • Upgrade actix-cors to 0.6.4
    Update Rust crate actix-test to 0.1.0
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-test-0.x
    • Merge into: master
    • Upgrade actix-test to 0.1.0
    Update Rust crate async-trait to 0.1.58
    • Schedule: ["at any time"]
    • Branch name: renovate/async-trait-0.x
    • Merge into: master
    • Upgrade async-trait to 0.1.58
    Update Rust crate bincode to 2.0.0-rc.2
    • Schedule: ["at any time"]
    • Branch name: renovate/bincode-2.x
    • Merge into: master
    • Upgrade bincode to 2.0.0-rc.2
    Update Rust crate console_error_panic_hook to 0.1.7
    • Schedule: ["at any time"]
    • Branch name: renovate/console_error_panic_hook-0.x
    • Merge into: master
    • Upgrade console_error_panic_hook to 0.1.7
    Update Rust crate fnv to 1.0.7
    • Schedule: ["at any time"]
    • Branch name: renovate/fnv-1.x
    • Merge into: master
    • Upgrade fnv to 1.0.7
    Update Rust crate futures to 0.3.25
    • Schedule: ["at any time"]
    • Branch name: renovate/rust-futures-monorepo
    • Merge into: master
    • Upgrade futures to 0.3.25
    Update Rust crate hex to 0.4.3
    • Schedule: ["at any time"]
    • Branch name: renovate/hex-0.x
    • Merge into: master
    • Upgrade hex to 0.4.3
    Update Rust crate hyper to 0.14.23
    • Schedule: ["at any time"]
    • Branch name: renovate/hyper-0.x
    • Merge into: master
    • Upgrade hyper to 0.14.23
    Update Rust crate proc-macro2 to 1.0.47
    • Schedule: ["at any time"]
    • Branch name: renovate/proc-macro2-1.x
    • Merge into: master
    • Upgrade proc-macro2 to 1.0.47
    Update Rust crate rlp to 0.5.2
    • Schedule: ["at any time"]
    • Branch name: renovate/rlp-0.x
    • Merge into: master
    • Upgrade rlp to 0.5.2
    Update Rust crate serde to 1.0.147
    • Schedule: ["at any time"]
    • Branch name: renovate/serde-1.x
    • Merge into: master
    • Upgrade serde to 1.0.147
    Update Rust crate serde_derive to 1.0.147
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_derive-1.x
    • Merge into: master
    • Upgrade serde_derive to 1.0.147
    Update Rust crate serde_json to 1.0.88
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_json-1.x
    • Merge into: master
    • Upgrade serde_json to 1.0.88
    Update Rust crate structopt to 0.3.26
    • Schedule: ["at any time"]
    • Branch name: renovate/structopt-0.x
    • Merge into: master
    • Upgrade structopt to 0.3.26
    Update Rust crate syn to 1.0.103
    • Schedule: ["at any time"]
    • Branch name: renovate/syn-1.x
    • Merge into: master
    • Upgrade syn to 1.0.103
    Update Rust crate tracing to 0.1.37
    • Schedule: ["at any time"]
    • Branch name: renovate/tracing-0.x
    • Merge into: master
    • Upgrade tracing to 0.1.37
    Update Rust crate wee_alloc to 0.4.5
    • Schedule: ["at any time"]
    • Branch name: renovate/wee_alloc-0.x
    • Merge into: master
    • Upgrade wee_alloc to 0.4.5
    Update rust-wasm-bindgen monorepo
    • Schedule: ["at any time"]
    • Branch name: renovate/rust-wasm-bindgen-monorepo
    • Merge into: master
    • Upgrade wasm-bindgen to =0.2.83
    • Upgrade wasm-bindgen-test to 0.3
    Update Rust crate actix to 0.13.0
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-0.x
    • Merge into: master
    • Upgrade actix to 0.13.0
    Update Rust crate actix-rt to 2.7.0
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-rt-2.x
    • Merge into: master
    • Upgrade actix-rt to 2.7.0
    Update Rust crate actix-web to 4.2.1
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-web-4.x
    • Merge into: master
    • Upgrade actix-web to 4.2.1
    Update Rust crate actix-web-actors to v4.1.0
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-web-actors-4.x
    • Merge into: master
    • Upgrade actix-web-actors to =4.1.0
    Update Rust crate actix-web-httpauth to 0.8.0
    • Schedule: ["at any time"]
    • Branch name: renovate/actix-web-httpauth-0.x
    • Merge into: master
    • Upgrade actix-web-httpauth to 0.8.0
    Update Rust crate backoff to 0.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/backoff-0.x
    • Merge into: master
    • Upgrade backoff to 0.4.0
    Update Rust crate bigdecimal to v0.3.0
    • Schedule: ["at any time"]
    • Branch name: renovate/bigdecimal-0.x
    • Merge into: master
    • Upgrade bigdecimal to =0.3.0
    Update Rust crate criterion to 0.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/criterion-0.x
    • Merge into: master
    • Upgrade criterion to 0.4.0
    Update Rust crate ctrlc to 3.2
    • Schedule: ["at any time"]
    • Branch name: renovate/ctrlc-3.x
    • Merge into: master
    • Upgrade ctrlc to 3.2
    Update Rust crate deadpool to 0.9
    • Schedule: ["at any time"]
    • Branch name: renovate/deadpool-0.x
    • Merge into: master
    • Upgrade deadpool to 0.9
    Update Rust crate either to 1.8.0
    • Schedule: ["at any time"]
    • Branch name: renovate/either-1.x
    • Merge into: master
    • Upgrade either to 1.8.0
    Update Rust crate handlebars to 3.5.5
    • Schedule: ["at any time"]
    • Branch name: renovate/handlebars-3.x
    • Merge into: master
    • Upgrade handlebars to 3.5.5
    Update Rust crate itertools to 0.10
    • Schedule: ["at any time"]
    • Branch name: renovate/itertools-0.x
    • Merge into: master
    • Upgrade itertools to 0.10
    Update Rust crate lazy_static to 1.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/lazy_static-1.x
    • Merge into: master
    • Upgrade lazy_static to 1.4.0
    Update Rust crate metrics to 0.20
    • Schedule: ["at any time"]
    • Branch name: renovate/metrics-0.x
    • Merge into: master
    • Upgrade metrics to 0.20
    Update Rust crate metrics-exporter-prometheus to 0.11
    • Schedule: ["at any time"]
    • Branch name: renovate/metrics-exporter-prometheus-0.x
    • Merge into: master
    • Upgrade metrics-exporter-prometheus to 0.11
    Update Rust crate metrics-macros to 0.6
    • Schedule: ["at any time"]
    • Branch name: renovate/metrics-macros-0.x
    • Merge into: master
    • Upgrade metrics-macros to 0.6
    Update Rust crate metrics-util to 0.14
    • Schedule: ["at any time"]
    • Branch name: renovate/metrics-util-0.x
    • Merge into: master
    • Upgrade metrics-util to 0.14
    Update Rust crate num to v0.4.0
    • Schedule: ["at any time"]
    • Branch name: renovate/num-0.x
    • Merge into: master
    • Upgrade num to 0.4.0
    • Upgrade num to 0.4
    Update Rust crate once_cell to 1.16
    • Schedule: ["at any time"]
    • Branch name: renovate/once_cell-1.x
    • Merge into: master
    • Upgrade once_cell to 1.16
    Update Rust crate parity-crypto to 0.9
    • Schedule: ["at any time"]
    • Branch name: renovate/parity-crypto-0.x
    • Merge into: master
    • Upgrade parity-crypto to 0.9
    Update Rust crate rand to 0.8
    • Schedule: ["at any time"]
    • Branch name: renovate/rand-0.x
    • Merge into: master
    • Upgrade rand to 0.8
    Update Rust crate rayon to 1.6.0
    • Schedule: ["at any time"]
    • Branch name: renovate/rayon-1.x
    • Merge into: master
    • Upgrade rayon to 1.6.0
    Update Rust crate secp256k1 to 0.24
    • Schedule: ["at any time"]
    • Branch name: renovate/secp256k1-0.x
    • Merge into: master
    • Upgrade secp256k1 to 0.24
    Update Rust crate sentry to 0.29.0
    • Schedule: ["at any time"]
    • Branch name: renovate/sentry-0.x
    • Merge into: master
    • Upgrade sentry to 0.29.0
    Update Rust crate serde_with to 1.14.0
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_with-1.x
    • Merge into: master
    • Upgrade serde_with to 1.14.0
    Update Rust crate sha2 to 0.10
    • Schedule: ["at any time"]
    • Branch name: renovate/sha2-0.x
    • Merge into: master
    • Upgrade sha2 to 0.10
    Update Rust crate sqlx to 0.6
    • Schedule: ["at any time"]
    • Branch name: renovate/sqlx-0.x
    • Merge into: master
    • Upgrade sqlx to 0.6
    Update Rust crate time to 0.3
    • Schedule: ["at any time"]
    • Branch name: renovate/time-0.x
    • Merge into: master
    • Upgrade time to 0.3
    Update Rust crate tiny-keccak to 1.5.0
    • Schedule: ["at any time"]
    • Branch name: renovate/tiny-keccak-1.x
    • Merge into: master
    • Upgrade tiny-keccak to 1.5.0
    Update Rust crate tracing-appender to 0.2
    • Schedule: ["at any time"]
    • Branch name: renovate/tracing-appender-0.x
    • Merge into: master
    • Upgrade tracing-appender to 0.2
    Update Rust crate tracing-subscriber to 0.3.16
    • Schedule: ["at any time"]
    • Branch name: renovate/tracing-subscriber-0.x
    • Merge into: master
    • Upgrade tracing-subscriber to 0.3.16
    Update dependency axios to ^0.27.0
    • Schedule: ["at any time"]
    • Branch name: renovate/axios-0.x
    • Merge into: master
    • Upgrade axios to ^0.27.0
    Update dependency markdownlint-cli to ^0.32.0
    • Schedule: ["at any time"]
    • Branch name: renovate/markdownlint-cli-0.x
    • Merge into: master
    • Upgrade markdownlint-cli to ^0.32.0
    Update dependency solc to v0.8.17
    • Schedule: ["at any time"]
    • Branch name: renovate/solc-0.x
    • Merge into: master
    • Upgrade solc to 0.8.17
    Update docker/build-push-action action to v2.10.0
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-build-push-action-2.x
    • Merge into: master
    • Upgrade docker/build-push-action to v2.10.0
    Update docker/login-action action to v1.14.1
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-login-action-1.x
    • Merge into: master
    • Upgrade docker/login-action to v1.14.1
    Update dysnix/kubectl Docker tag to v1.24
    • Schedule: ["at any time"]
    • Branch name: renovate/dysnix-kubectl-1.x
    • Merge into: master
    • Upgrade dysnix/kubectl to v1.24-gcloud
    Update kanga333/variable-mapper action to v0.3.0
    • Schedule: ["at any time"]
    • Branch name: renovate/kanga333-variable-mapper-0.x
    • Merge into: master
    • Upgrade kanga333/variable-mapper to v0.3.0
    Update rust Docker tag to v1.65
    • Schedule: ["at any time"]
    • Branch name: renovate/rust-1.x
    • Merge into: master
    • Upgrade rust to 1.65
    Update Rust crate ethabi to v18
    • Schedule: ["at any time"]
    • Branch name: renovate/ethabi-18.x
    • Merge into: master
    • Upgrade ethabi to 18.0.0
    Update Rust crate handlebars to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/handlebars-4.x
    • Merge into: master
    • Upgrade handlebars to 4.3.5
    Update Rust crate jsonrpc-core to v18
    • Schedule: ["at any time"]
    • Branch name: renovate/jsonrpc-core-18.x
    • Merge into: master
    • Upgrade jsonrpc-core to 18
    Update Rust crate jsonwebtoken to v8
    • Schedule: ["at any time"]
    • Branch name: renovate/jsonwebtoken-8.x
    • Merge into: master
    • Upgrade jsonwebtoken to 8
    Update Rust crate serde_with to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/serde_with-2.x
    • Merge into: master
    • Upgrade serde_with to 2.1.0
    Update Rust crate tiny-keccak to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/tiny-keccak-2.x
    • Merge into: master
    • Upgrade tiny-keccak to 2.0.2
    Update actions/checkout action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/actions-checkout-3.x
    • Merge into: master
    • Upgrade actions/checkout to v3
    Update dependency @​nomiclabs/hardhat-etherscan to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/nomiclabs-hardhat-etherscan-3.x
    • Merge into: master
    • Upgrade @nomiclabs/hardhat-etherscan to ^3.0.0
    Update dependency @​openzeppelin/contracts to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/openzeppelin-contracts-4.x
    • Merge into: master
    • Upgrade @openzeppelin/contracts to 4.8.0
    Update dependency @​rollup/plugin-commonjs to v23
    • Schedule: ["at any time"]
    • Branch name: renovate/rollup-plugin-commonjs-23.x
    • Merge into: master
    • Upgrade @rollup/plugin-commonjs to ^23.0.0
    Update dependency @​rollup/plugin-json to v5
    • Schedule: ["at any time"]
    • Branch name: renovate/rollup-plugin-json-5.x
    • Merge into: master
    • Upgrade @rollup/plugin-json to ^5.0.0
    Update dependency @​rollup/plugin-node-resolve to v15
    • Schedule: ["at any time"]
    • Branch name: renovate/rollup-plugin-node-resolve-15.x
    • Merge into: master
    • Upgrade @rollup/plugin-node-resolve to ^15.0.0
    Update dependency @​typechain/ethers-v5 to v10
    • Schedule: ["at any time"]
    • Branch name: renovate/typechain-ethers-v5-10.x
    • Merge into: master
    • Upgrade @typechain/ethers-v5 to ^10.0.0
    Update dependency @​types/node to v18
    • Schedule: ["at any time"]
    • Branch name: renovate/node-18.x
    • Merge into: master
    • Upgrade @types/node to ^18.0.0
    Update dependency argparse to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/argparse-2.x
    • Merge into: master
    • Upgrade argparse to ^2.0.0
    • Upgrade @types/argparse to ^2.0.0
    Update dependency axios to v1
    • Schedule: ["at any time"]
    • Branch name: renovate/axios-1.x
    • Merge into: master
    • Upgrade axios to ^1.0.0
    Update dependency chalk to v5
    • Schedule: ["at any time"]
    • Branch name: renovate/chalk-5.x
    • Merge into: master
    • Upgrade chalk to ^5.0.0
    Update dependency commander to v9
    • Schedule: ["at any time"]
    • Branch name: renovate/commander-9.x
    • Merge into: master
    • Upgrade commander to ^9.0.0
    Update dependency dotenv to v16
    • Schedule: ["at any time"]
    • Branch name: renovate/dotenv-16.x
    • Merge into: master
    • Upgrade dotenv to ^16.0.0
    Update dependency eslint to v8
    • Schedule: ["at any time"]
    • Branch name: renovate/eslint-8.x
    • Merge into: master
    • Upgrade eslint to ^8.0.0
    Update dependency eslint-config-alloy to v4
    • Schedule: ["at any time"]
    • Branch name: renovate/eslint-config-alloy-4.x
    • Merge into: master
    • Upgrade eslint-config-alloy to ^4.0.0
    Update dependency mocha to v10
    • Schedule: ["at any time"]
    • Branch name: renovate/mocha-10.x
    • Merge into: master
    • Upgrade mocha to ^10.0.0
    • Upgrade @types/mocha to ^10.0.0
    Update dependency node-fetch to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/node-fetch-3.x
    • Merge into: master
    • Upgrade node-fetch to ^3.0.0
    Update dependency openzeppelin-solidity to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/openzeppelin-solidity-3.x
    • Merge into: master
    • Upgrade openzeppelin-solidity to ^3.0.0
    Update dependency prettier to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/prettier-2.x
    • Merge into: master
    • Upgrade prettier to ^2.0.0
    Update dependency rollup to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/rollup-3.x
    • Merge into: master
    • Upgrade rollup to ^3.0.0
    Update dependency ts-node to v10
    • Schedule: ["at any time"]
    • Branch name: renovate/ts-node-10.x
    • Merge into: master
    • Upgrade ts-node to ^10.0.0
    Update dependency typechain to v8
    • Schedule: ["at any time"]
    • Branch name: renovate/typechain-8.x
    • Merge into: master
    • Upgrade typechain to ^8.0.0
    Update dependency websocket-as-promised to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/websocket-as-promised-2.x
    • Merge into: master
    • Upgrade websocket-as-promised to ^2.0.0
    Update docker/build-push-action action to v3
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-build-push-action-3.x
    • Merge into: master
    • Upgrade docker/build-push-action to v3.2.0
    Update docker/login-action action to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-login-action-2.x
    • Merge into: master
    • Upgrade docker/login-action to v2.1.0
    Update docker/setup-buildx-action action to v2
    • Schedule: ["at any time"]
    • Branch name: renovate/docker-setup-buildx-action-2.x
    • Merge into: master
    • Upgrade docker/setup-buildx-action to v2
    Update postgres Docker tag to v15
    • Schedule: ["at any time"]
    • Branch name: renovate/postgres-15.x
    • Merge into: master
    • Upgrade postgres to 15
    Update technote-space/workflow-conclusion-action action to v3
    Update typescript-eslint monorepo to v5 (major)

    🚸 Branch creation will be limited to maximum 2 per hour, so it doesn't swamp any CI resources or spam the project. See docs for prhourlylimit for details.


    ❓ Got questions? Check out Renovate's Docs, particularly the Getting Started section. If you need any further assistance then you can also request help here.


    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Support for distributed frameworks

    Support for distributed frameworks

    For producing environment,I think that it is necessary of zksync to support for distributed framework.

    Considering the following situations:

    • Single point problem.(It couldn't service at all when the only one server is down.)
    • The main components of zksync communicate with each other by threads' channel.Distributed services will use rpc to interact with others instead.
    • Transaction per second of zksync will also be limited by single one framework.(e.g Application like the perpetual contract that will reach more than thousand query per second.)But how to keep the zksync state of all server being consistent is another tricky problem.
    • It couldn't service when need publish or restart.(e.g fixing bugs or publishing new features)

    May be it is time to develop distributed mode for zksync in sometime with its widely used as a leading open source zk framework.

    Thanks.

    opened by berryjam 0
Releases(contracts-7)
Owner
Matter Labs
Practical applications of Zero-Knowledge Proofs
Matter Labs
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
Substreams development kit for Ethereum chains, contains Firehose Block model and helpers as well as utilities for Ethereum ABI encoding/decoding.

Substreams Ethereum Substreams development kit for Ethereum chains, contains Rust Firehose Block model and helpers as well as utilities for Ethereum A

StreamingFast 15 Oct 25, 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
A collection of algorithms that can do join between two parties while preserving the privacy of keys on which the join happens

Private-ID Private-ID is a collection of algorithms to match records between two parties, while preserving the privacy of these records. We present tw

Meta Research 169 Dec 5, 2022
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
A privacy-preserving blockchain on Substrate

Zerochain Zerochain is a generic privacy-protecting layer on top of Substrate. It provides some useful substrate modules and toolkit for protecting us

LayerX 256 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
Privacy-first delay tolerant network protocol

?? Liminality ?? Liminality is a unique protocol for wireless communication in fluid and dynamic environments. The protocol takes its name from the li

Ellen Poe 10 Oct 11, 2023
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
Complete Ethereum and Celo wallet implementation and utilities in Rust

ethers.rs Complete Ethereum and Celo wallet implementation and utilities in Rust Documentation Extensive documentation and examples are available here

Georgios Konstantopoulos 1.5k Jan 8, 2023
The fast, light, and robust client for the Ethereum mainnet.

OpenEthereum Fast and feature-rich multi-network Ethereum client. » Download the latest release « Table of Contents Description Technical Overview Bui

OpenEthereum 1.6k Dec 28, 2022
Rust client to Opensea's APIs and Ethereum smart contracts

opensea.rs Rust bindings & CLI to the Opensea API and Contracts CLI Usage Run cargo r -- --help to get the top level help menu: opensea-cli 0.1.0 Choo

Georgios Konstantopoulos 226 Dec 27, 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
Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.

foundry Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust. Foundry consists of: Forge: Ethe

Georgios Konstantopoulos 5.1k Jan 9, 2023
A library to help you sew up your Ethereum project with Rust and just like develop in a common backend

SewUp Secondstate EWasm Utility Program, a library helps you sew up your Ethereum project with Rust and just like development in a common backend. The

Second State 48 Dec 18, 2022
The fast, light, and robust client for Ethereum-like networks.

The Fastest and most Advanced Ethereum Client. » Download the latest release « Table of Contents Description Technical Overview Building 3.1 Building

OpenEthereum 6.7k Dec 24, 2022
The Fastest and most Advanced Ethereum Client

The Fastest and most Advanced Ethereum Client. » Download the latest release « Table of Contents Description Technical Overview Building 3.1 Building

Jay Lee 6 Feb 17, 2022