zkSync 代码解析

Posted mutourend

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zkSync 代码解析相关的知识,希望对你有一定的参考价值。

1. 引言

前序博客有:

zkSync相关代码实现见:

  • https://github.com/matter-labs/zksync

2. zkSync 基本架构

zkSync的基本组成有:

  • zkSync smart contract:部署在以太坊网络上的Solidity智能合约,用于管理用户balances并验证zkSync network操作的正确性。

  • Prover application:为a worker application,用于创建a proof for an executed block。
    Prover application会从Server application中获取有效的jobs,当有新的区块时,Server application将提供a witness(input data to generate a proof),然后Prover application 开始工作。当proof生成后,Prover application会将该proof报告给Server application,Server application再将该proof发布给zkSync智能合约。
    Prover application可看成是on-demand worker,当Server application负载很高时,允许有多个Prover applications,当没有交易输入时则没有Prover application。
    生成proof是非常消耗资源的工作,因此,运行Prover application的机器应具有现代CPU和大量的RAM。

  • Server application:运行zkSync网络的节点。
    Server application的职能主要有:
    1)监测智能合约上的onchain operations(如存款)
    2)接收交易
    3)生成zkSync上的区块
    4)为executed blocks发起proof生成申请
    5)将数据发布到zkSync smart contract
    目前Server application支持两种运行方式:
    1)单片式:由一个二进制文件提供所有功能,具体见https://github.com/matter-labs/zksync/tree/master/core/bin/server
    2)微服务式:
    Core服务,具体见https://github.com/matter-labs/zksync/tree/master/core/bin/zksync_core:用于维护交易内存池并提交新的区块。
    API服务,具体见https://github.com/matter-labs/zksync/tree/master/core/bin/zksync_api:提供server “front-end”接口,当前支持REST API & JSON RCP HTTP/WS等形式。
    Ethereum Sender服务,具体见https://github.com/matter-labs/zksync/tree/master/core/bin/zksync_eth_sender:通过发送相应的Ethereum交易到L1 smart contract来finalize the blocks。
    Witness Generator服务,具体见https://github.com/matter-labs/zksync/tree/master/core/bin/zksync_witness_generator:为Prover prove block创建所需的input data,通过私有API server与Prover进行交互。

  • Explorer:zkSync网络explorer。为web application,通过Server API 来接收数据,并以合适的方式呈现在区块链浏览器中。

3. 本地运行zkSync

本地运行zkSync,至少应有:

  • 编译zkSync smart contract 并部署到以太坊中。
  • 运行zkSync Server application。
  • 至少运行一个Prover application,并将其与Server application连接。

参考资料

[1] zkSync project architecture

以上是关于zkSync 代码解析的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段

zkSync 基本原理

zkSync2.0兼容EVM 打破ZK Rollup技术瓶颈

以太坊扩容方案zkSync 2.0公共测试网正式上线

以太坊扩容方案zkSync 2.0公共测试网正式上线

以太坊扩容方案zkSync 2.0公共测试网正式上线