启动Chain Connector
最后更新于
最后更新于
Chain Connector是连接Delta Node和区块链的中间件。用于对区块链进行抽象,使得Delta Node可以支持各种不同的区块链系统。同时,Chain Connector还负责区块链系统需要的密钥托管和签名相关工作,并负责保证密钥的安全使用。
Chain Connector还可以配置为不需要连接区块链的Coordinator模式。在这种模式下,Chain Connector自身做为整个网络的中心节点,网络中所有的Delta Node都连接到Chain Connector完成任务分发和任务协调。
在启动Connector之前,需要先初始化配置:
首先,新建文件夹delta_chain_connector,作为节点启动的根目录:
在节点根目录中,输入命令:
运行命令后,会在根目录delta_chain_connector
中,新建文件夹config
,config
文件夹用来存放节点的配置文件。
在config
文件夹中,会有一个预先生成的配置文件config.json
:。在首次启动前,我们必须要配置的项目包括Chain Connector的运行模式。如果运行模式配置为Blockchain,那么还需要配置区块链节点的IP地址。
在这里我们将impl设置为coordinator
,即为coordinator模式:
coordinator模式的Chain Connector,还需要配置一个数据库,用于存储"链上"数据。可以直接使用SQLite,指定一个数据库文件存储地址即可。
完成配置之后,就可以启动Chain Connector。
使用Docker命令启动Chain Connector,将上一步创建的文件夹绑定到Container内部的app
文件夹。另外Chain Connector需要对外暴露端口4500
,作为对外的API端口:
通过Docker的log命令查看Container的执行状态,确认节点已经正常启动:
使用Chain模式启动Chain Connector 与使用Coordinator 模式启动差别不大,唯一需要修改的就是配置文件。
要以Chain模式启动Chain Connector,我们需要将impl改为chain:
接下来,我们需要修改ethereum.nodeAddress
、ethereum.privateKey
、ethereum.provider
、ethereum.identity
、ethereum.hfl
、ethereum.datahub
以及ethereum.hlr
这几项配置。
其中,ethereum.nodeAddress
和ethereum.privateKey
用来配置用户的区块链钱包地址和私钥。用户可以使用任意与以太坊兼容的钱包(比如Metamask),来生成钱包地址和私钥。
chain.provider
用来配置区块链节点的地址,这里需要使用WebSocket的链接地址。
ethereum.identity
、ethereum.hfl
、ethereum.datahub
和ethereum.hlr
分别对应IdentityContract、HFLContract、DataHub和HLR这些智能合约的配置。 这些配置项目下的contractAddress
项,代表对应的智能合约地址。在ethereum.hlr.verifiers
项下,用来配置不同输入长度所对应的零知识证明验证合约的地址,例如ethereum.hlr.verifiers。3
,就对应于智能合约PlonkVerifier3
的地址。
在部署智能合约章节可以了解如何部署智能合约并获得合约地址。
部署智能合约使用Chain模式启动Chain Connector服务的方式与使用Coordinator模式的方式完全一致。