体验zksync-1

zksync 是用于以太坊的、可扩展的、隐私交易的引擎。它目前的功能范围包括以太币(ETH)和ERC20代币的隐私交易。zkSync建立在ZK Rollup架构上。zk Rollup 的本质是将链上的用户状态压缩存储在一棵 hash 树中,并将用户状态的变更转移到链下来,同时通过 zkSNARK 的证明来保证该链下用户状态变更过程的正确性。在链上直接处理用户状态的变更成本是比较高的,但是仅仅利用链上的智能合约来验证一个零知识证明的 PROOF 是否正确,成本是相对低很多的。另外必要的转账信息也会被和证明一起提交到合约,方便用户查账。用户具有存款、转账、取款等动作。通常,资产位于L1之上,经过存款动作即为将资产转移至Rollup L2。位于Rollup L2之上的字长方可转移。

step1 准备工作

https://github.com/matter-labs/zksync/blob/master/docs/setup-dev.md

Docker、node(10.20.1以上,版本以10为基准,不建议11 或者12 )、Yarn、Axel、gnu-sed、Envsubst、Rust、JQ、PSQL、Diesel、solc、drone cli都是必须要安装的。

1.1 环境配置:

讲下面的环境变量加入shell profile,以zsh为例:

1
2
3
4
5
6
# Add path here:
export ZKSYNC_HOME=/path/to/zksync
export PATH=$ZKSYNC_HOME/bin:$PATH

# If you're like me, uncomment:
# cd $ZKSYNC_HOME

ZKSYNC_HOME 是zksync项目的目录即可,例如/home/will/documents/zksync/

1.2 zshrc 配置

1
2
3
echo "fpath=(~/.zsh_comp $fpath)" >> ~/.zshrc

mkdir -p ~/.zsh_comp

1.3 制作命令文件

1
2
3
4
5
#compdef zksync

cmds=( ${(uf)"$(grep -oE '^[a-zA-Z0-9_.-]+:([^=]|$)' $ZKSYNC_HOME/Makefile | sed 's/[^a-zA-Z0-9_.-]*$//')"} )

_describe 'zksync make cmds' cmds

1.4 source zshrc 文件后,zksync命令即可用。

step2 zksync设置本地开发环境

2.1 初始化

1
zksync init

首次初始化需要一次性下载 8 GB 的配置文件。如遇到初始化问题,请参看zksync plonk-setup 命令。本人网速580KB/s的情况下,接近4个小时完成下载。