Delta
HomeGithubDocs
  • Delta开发文档
  • 系统架构说明
  • 快速搭建指南
  • Delta在线Demo
  • 常见问题解答
  • 其他区块链支持
  • 版本发布说明
    • v0.8.2
    • v0.8.1
    • v0.8.0
    • v0.6.0
    • v0.5.3
    • v0.5.0
    • 历史版本
  • 系统搭建和部署
    • 启动Delta区块链节点
    • 启动Delta区块链浏览器
    • 部署智能合约
    • 启动Chain Connector
    • 启动Delta Node
    • 启动Delta ZK
    • 准备节点数据
    • 启动Deltaboard
    • 执行计算任务
  • 计算任务开发
    • 横向联邦学习任务
    • 横向联邦统计任务
    • 逻辑回归任务
    • 使用Delta Node API管理任务
  • 系统详细设计
    • 横向联邦任务框架
    • 链上安全聚合
    • 横向联邦学习
    • 横向联邦统计
    • 逻辑回归
    • 逻辑回归中的零知识证明
    • 节点加入与离开网络的机制
  • 联邦统计
    • Pandas API支持列表
由 GitBook 提供支持
在本页
  • 无区块链网络搭建
  • 区块链网络搭建
  • 方法1:用Ganache做为区块链节点
  • 方法2:用Delta Chain做为区块链节点

这有帮助吗?

快速搭建指南

上一页系统架构说明下一页Delta在线Demo

最后更新于2年前

这有帮助吗?

Delta隐私计算网络由多个组件构成,可根据需要进行选择和组合。在开始搭建前,建议先阅读系统架构说明文档,对Delta的整个框架结构有一个初步的了解:

无区块链网络搭建

Delta隐私计算网络支持无区块链模式的运行。这种模式下,由Chain Connector完成组网,协调Delta Node完成计算任务执行。最小化的网络需要搭建一个Chain Connector(运行于Coordinator模式),两个Delta Node,一个Deltaboard,如下图所示:

使用All-in-One镜像启动整个网络

1.克隆delta-all-in-one的github仓库:

$ git clone --depth 1 --branch v0.8.3 https://github.com/delta-mpc/delta-all-in-one.git

2.进入无区块链网络的配置文件夹:

$ cd delta-all-in-one/no-blockchain

3.使用docker-compose命令启动全部的服务:

$ docker-compose up -d

4.等待Docker镜像全部下载后,服务会自动全部启动起来。等服务全部启动后,就可以开始访问Deltaboard的界面了,在浏览器里打开如下网址,可以看到Deltaboard的登录界面:

http://localhost:8090

使用Deltaboard中默认的管理员账户登录:

用户名:admin

密码:admin

5.进入Deltaboard的界面,接下来就可以在Playground中,执行计算任务了:

使用各个组件的Docker镜像手动搭建

1.参照启动Chain Connector的教程启动Chain Connector,并配置为Coordinator模式:

2.分别启动两个Delta Node,都连接到上面配置的Chain Connector:

3.在Delta Node中各自放置一些测试用的数据:

4.如果想要开启零知识证明任务验证功能,还需要为每个Delta Node启动一个Delta ZK服务来生成零知识证明:

5.如果不需要图形界面来管理网络、开发任务,这里我们就已经可以使用代码连接Delta Node API提交计算任务了:

6.(可选)继续启动Deltaboard,Delta Node的图形化管理界面,以及在线代码调试环境。连接到上面配置的其中一个Delta Node:

7.(可选)至此Delta隐私计算网络已经搭建完成,接下来可以在Deltaboard中编写一个隐私计算任务试试看了:

区块链网络搭建

运行于区块链模式的Delta网络,需要至少三个数据持有方。每个数据持有方各自搭建一套完全一样的系统。系统中包括一个部署了Delta智能合约的区块链节点,运行于区块链模式的Chain Connector,Delta Node,以及用于图形化管理的Deltaboard。

参与网络搭建的多方也可以共享同一个区块链节点,这种情况一般用于本地测试,或者是多方之间互相信任,愿意共享同一个区块链节点。多方共享同一个区块链节点的情况下,各方的数据仍然保持同样的隐私保护程度,无数据泄露风险。只是区块链网络节点数更少,从而共识强度更低,更容易出现针对Tx的攻击行为,导致任务无法正常执行,或者是数据持有者参与了一些本不愿意参与的计算,付出了额外的算力成本。

单个区块链节点的Delta网络结构如下图所示:

在本示例中,使用上述网络结构来搭建Delta网络。

方法1:用Ganache做为区块链节点

注意Ganache仅仅是一个本地模拟以太坊的节点,不包括共识算法,因此绝不能用于正式环境。

在Delta All-in-One仓库中,包含了使用Ganache一键启动整个Delta网络的脚本,可以直接使用。开发者也可以自行使用各个组件的docker镜像完成网络搭建:

使用Delta All-in-One镜像启动整个网络

1.克隆delta-all-in-one的github仓库:

$ git clone --depth 1 --branch v0.8.3 https://github.com/delta-mpc/delta-all-in-one.git

2.进入区块链网络的启动文件夹:

 cd delta-all-in-one/with-blockchain

3.使用docker-compose命令启动全部的服务:

$ docker-compose up

等待镜像下载完成,容器就开始启动了。 当看到如下日志时:

dashboard       | [I 2022-01-18 09:20:40.850 JupyterHub app:2849] JupyterHub is now running at http://:8000
dashboard       | [D 2022-01-18 09:20:40.851 JupyterHub app:2452] It took 1.211 seconds for the Hub to start

就表明所有容器都已启动成功,我们可以访问搭建的隐私计算网络了。Delta Node镜像启动后,会自动完成链上注册,并进入任务监听状态。

4.进入Deltaboard的图形化界面:

http://localhost:8090

使用Deltaboard中默认的管理员账户登录:

用户名:admin

密码:admin


至此,一个三节点Delta区块链隐私计算网络,就已经搭建完成了。想要更进一步地了解Delta平台的功能、设计思路,可以浏览我们的文档:

使用各个组件的Docker镜像手动搭建

1.使用Ganache的官方镜像来启动区块链节点:

docker run -d --name=ganache -p 8545:8545 trufflesuite/ganache-cli:v6.12.2 -s delta

这里需要注意的是,在启动镜像时通过-s参数写死了随机初始化的种子,保证了第一次部署合约时,合约地址永远是一样的,以方便后续的系统配置。Ganache本来就只能用于本地测试,因此这样做也没有什么问题。

2.在区块链上部署Delta智能合约:


3. 启动3个Chain Connector,并配置为Blockchain模式,都连接到上述区块链节点:

在配置Blockchain模式下的Chain Connector时,需要在Chain Connector的配置文件中填入一些区块链节点的信息:

chain.nodeAddress、chain.privateKey是区块链钱包的地址和私钥,Ganache在启动时会自动生成10个自带代币的钱包,可以在docker容器的日志中找到地址和私钥:

docker logs -f ganache

注意3个Chain Connector必须配置成不同的钱包地址和私钥。

chain.provider为区块链节点地址,在本地部署的情况下,这一项填写ws://localhost:8545即可。

chain.identity.contractAddress以及chain.hfl.contractAddress分别代表与Delta配套的智能合约的地址。在第2步部署智能合约完成后,我们可以得到这几个合约的地址,在这里填入配置文件中。

4.启动3个Delta Node,分别连接到上述3个Chain Connector:






7.如果不需要图形界面,就可以使用上面任意一个Delta Node的API,通过代码来提交任务,获取执行结果了:


8.(可选)启动1个Deltaboard,连接到任意一个Delta Node,用于图形化的网络管理:


9.(可选)然后就可以在Deltaboard中编写和测试计算任务了:

方法2:用Delta Chain做为区块链节点

此种搭建方式目前只支持手动搭建的方式,可以搭建多个区块链节点组网的Delta区块链隐私计算网络。

在第1步时,按照下述步骤,启动Delta Chain镜像:

1. 启动Delta Chain区块链节点,可以启动一个节点,也可以启动多个节点组成网络:

2.(可选)启动一个图形化界面的区块链浏览器,方便查看区块链数据:

是一个专门用于本地测试的区块链节点,API和以太坊完全兼容,可以快速在本地搭建一个模拟以太坊的区块链节点。

搭建方式和中的手动搭建方式完全一致,只需要替换掉第1步。

3. 从中的[手动搭建-第2步]继续操作。

执行计算任务
启动Chain Connector
启动Delta Node
准备节点数据
启动Delta ZK
使用Delta Node API管理任务
启动Deltaboard
执行计算任务
Ganache
执行计算任务
部署智能合约
启动Chain Connector
启动Delta Node
准备节点数据
启动Delta ZK
使用Delta Node API管理任务
启动Deltaboard
执行计算任务
启动Delta区块链节点
启动Delta区块链浏览器
方法1
方法1
系统架构说明
Delta隐私计算网络 - 无区块链模式
Delta隐私计算网络 - 三个数据持有方