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 提供支持
在本页
  • 以太坊兼容(EVM Compatible)区块链
  • 其他区块链

这有帮助吗?

其他区块链支持

上一页常见问题解答下一页v0.8.2

最后更新于2年前

这有帮助吗?

以太坊兼容(EVM Compatible)区块链

Delta目前的智能合约使用Solidity编写,在Chain Connector中实现了以太坊API的调用,理论上可以在所有兼容以太坊的区块链上运行。但是由于Chain Connector目前使用了以太坊的pub/sub接口来订阅以太坊事件,因此需要目标区块链系统支持pub/sub事件订阅。下表中列出了经社区测试的Delta在各个以太坊兼容区块链上的适用情况:

区块链
是否兼容
情况说明
测试者

否

缺少pub/sub事件订阅支持

Jupiter(s2068649@ed.ac.uk)

未知

未测试

如果是Delta兼容的区块链系统,可以直接使用现有的Chain Connector进行连接。只需要在配置文件中指定impl为ethereum,并且按照区块链系统的要求设置具体的配置项即可。具体可以从快速搭建指南中的[]的第2步开始操作。或者按照系统搭建和部署章节的文档,在搭建好区块链节点后,从开始操作。

如果需要在不兼容的以太坊区块链上运行,需要开发者自己在Chain Connector中实现对应的支持,比如使用json-rpc替代掉pub/sub方法,即可运行在没有pub/sub接口的区块链上。

其他区块链

其他区块链系统的支持,需要开发者自己进行开发。Delta在架构设计时做了区块链系统的分层,所以理论上可以很容易的使用在其他区块链系统上,比如Fabric等。

具体来说,实现一个新的区块链系统的连接需要做两部分工作:

  1. 实现Delta的链上智能合约

  2. 在delta-chain-connector中实现调用区块链的方法

实现Delta的链上智能合约

目前Delta已经实现了Solidity的智能合约,如果目标区块链系统使用了EVM做为智能合约层,可以直接使用写好的Solidity合约。如果是Fabric等需要自己写的智能合约,就需要参照Delta的智能合约,实现一套功能和接口完全一样的。Delta的Solidity智能合约放置在下面的Github仓库中:

实现调用区块链的方法

Delta系统中针对区块链的调用进行了封装和解耦。对区块链的调用全部封装在Chain Connector中。Delta Node使用同一套API调用Chain Connector,在Chain Connector中再根据区块链的不同,使用不同的调用方法。

Chain Connector中,调用区块链的方法也是统一的抽象方法。只要针对目标区块链系统,实现具体的调用逻辑就可以了。在Chain Connector的架构中也考虑了对更多区块链的兼容,可以很方便的加入其他区块链的实现。

Chain Connector的代码放置在下面的仓库中:

在/src/impl目录中放置的就是对不同区块链的实现。目前有两个实现,coordinator和ethereum。coordinator是无区块链模式的实现,Chain Connector自己做为中心节点,模拟区块链的行为。ethereum是以太坊的实现。如果需要增加新的区块链系统,只要在/src/impl中新建一个文件夹,比如/src/impl/fabric,然后参考以太坊/src/impl/ethereum的实现方式,实现对应的调用方法就可以了。

然后使用修改过的Chain Connector启动整个系统,在Chain Connetor的配置文件中指定使用自己新增加的区块链就可以了。

Delta的Solidity合约使用了的开发框架,目录结构也是一个标准的Truffle项目结构。合约代码放置于/contracts目录下,使用方法可参考Truffle的官方教程。如果要自己实现的话,需要把/contracts目录下的合约都实现一遍。

调用方法的抽象Impl放置在文件中。需要实现其中的全部方法。

Truffle
service.ts
Conflux/树图
FISCO BCOS
部署智能合约
GitHub - delta-mpc/delta-contracts: The smart contracts used by Delta nodeGitHub
GitHub - delta-mpc/delta-chain-connector: Abstract layer to connect Delta Node to various of Blockchains and handle Blockchain accounts and transaction signing. Coordinator mode allows Chain Connector to run without Blockchain and forms a centralized network to run Delta tasks faster and easier for demonstration purposes or in the environment where decentralized trust is not required.GitHub
区块链网络搭建-方法1-手动搭建
Logo
Logo