Plonk 开源项目使用教程
1. 项目的目录结构及介绍
Plonk 项目的目录结构如下:
plonk/
├── docs/
├── examples/
├── plonk/
│ ├── core/
│ ├── proofs/
│ ├── serialization/
│ ├── setup/
│ ├── snark/
│ ├── util/
│ └── __init__.py
├── tests/
├── .gitignore
├── LICENSE
├── README.md
├── requirements.txt
└── setup.py
目录介绍
docs/
: 项目文档目录,包含项目的详细文档和使用说明。examples/
: 示例代码目录,包含使用 Plonk 的示例代码。plonk/
: 核心代码目录,包含项目的核心模块和功能实现。core/
: 核心模块,包含 Plonk 的核心算法和数据结构。proofs/
: 证明模块,包含生成和验证证明的代码。serialization/
: 序列化模块,包含数据的序列化和反序列化功能。setup/
: 设置模块,包含初始化和配置相关的代码。snark/
: SNARK 模块,包含与 SNARK 相关的功能实现。util/
: 工具模块,包含一些辅助工具和实用函数。__init__.py
: 初始化文件,用于初始化 Plonk 模块。
tests/
: 测试代码目录,包含项目的单元测试和集成测试。.gitignore
: Git 忽略文件,指定 Git 忽略的文件和目录。LICENSE
: 项目许可证文件,包含项目的开源许可证信息。README.md
: 项目说明文件,包含项目的简介和使用说明。requirements.txt
: 依赖文件,包含项目所需的依赖库和版本信息。setup.py
: 安装文件,用于项目的安装和分发。
2. 项目的启动文件介绍
Plonk 项目的启动文件是 plonk/__init__.py
。该文件主要负责初始化 Plonk 模块,并导入必要的子模块和功能。
启动文件内容
# plonk/__init__.py
from .core import *
from .proofs import *
from .serialization import *
from .setup import *
from .snark import *
from .util import *
__all__ = [
'core',
'proofs',
'serialization',
'setup',
'snark',
'util'
]
启动文件功能
- 导入核心模块、证明模块、序列化模块、设置模块、SNARK 模块和工具模块。
- 定义
__all__
变量,列出所有导出的模块和功能。
3. 项目的配置文件介绍
Plonk 项目的配置文件是 setup.py
。该文件主要用于项目的安装和分发,定义了项目的元数据和依赖关系。
配置文件内容
# setup.py
from setuptools import setup, find_packages
setup(
name='plonk',
version='0.1.0',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
'pycryptodome'
],
author='ZK-Garage',
author_email='contact@zk-garage.com',
description='A zero-knowledge proof library',
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
url='https://github.com/ZK-Garage/plonk',
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent'
],
python_requires='>=3.6'
)
配置文件功能
- 定义项目的名称、版本、包列表、依赖关系、作者信息、描述、长描述、URL 和分类器。
- 使用
find_packages()
自动查找所有包和子包。 - 指定项目的依赖库和版本要求。
- 指定项目的 Python 版本要求。
以上是 Plonk 开源项目的目录结构、启动文件和