5 个版本 (1 个稳定版)

1.0.0 2020年3月31日
1.0.0-rc.32020年3月25日
1.0.0-rc.22020年3月13日
1.0.0-rc.12020年2月7日
0.13.0-rc.22019年12月4日

#7 in #exonum

每月下载 43
用于 4 crate

Apache-2.0

1.5MB
30K SLoC

Exonum 管理服务

Travis Build Status License: Apache-2.0 rust 1.42.0+ required

exonum-supervisor 是 Exonum 区块链框架的主要服务之一。它能够部署和启动新的服务,改变现有服务的状态(例如停止、冻结或启动数据迁移),以及改变已启动服务的配置。

描述

管理器是一个 Exonum 服务,可以进行以下活动:

  • 部署服务工件和卸载未使用的工件
  • 实例化服务
  • 更改已实例化服务的配置
  • 更改已实例化服务的状态:停止、冻结、恢复和启动数据迁移
  • 更改共识配置

有关工件/服务生命周期的更多信息,请参阅服务生命周期管理器的文档。

管理器服务有两种不同的操作模式:“简单”模式和“去中心化”模式。两种模式之间的区别在于决策方法

  • 在去中心化模式下,要实例化服务或应用新配置,需要超过2/3的验证者达成共识。
  • 在简单模式下,任何决定在单个验证者批准后执行。

简单模式如果只有一个网络管理员管理所有验证节点或用于测试目的(例如,使用TestKit测试服务配置)时可能很有用。

对于节点置信度低的网络,请考虑使用去中心化模式。

交互

与监管器交互的方式是使用REST API。具体来说,请求应发送到以下端点之一: deploy-artifactpropose-configconfirm-config

收到请求后,监管器将请求转换为适当的交易,使用验证者密钥签名,并向网络的其他部分广播。

关键点是用户 不应 自己向监管器发送交易。这些端点的预期请求格式是序列化的Protobuf消息。

要部署一个工件,一个(在“简单”模式中)或多数(在“去中心化”模式中)的节点应通过API提交一个 DeployRequest 消息。

要请求配置更改,一个节点应通过API提交一个 ConfigPropose 消息。对于“简单”模式,无需采取更多行动。对于“去中心化”模式,多数节点还应提交包含提议配置哈希的 ConfigVote 消息。发送原始 ConfigPropose 消息的提议发起者不应为配置投票;监管器认为发起者通过提交提议进行了投票。

启动、恢复或冻结服务,或卸载工件的处理方式与配置更改类似,并遵循相同的规则。

HTTP API

服务的REST API已在模块文档中记录。

用法

在您的 Cargo.toml 中将 exonum-supervisor 包含为依赖项。

[dependencies]
exonum = "1.0.0"
exonum-supervisor = "1.0.0"

请注意,监管器服务由 exonum-cli 包自动添加到区块链中,因此如果您使用此包,则无需采取任何操作。

许可

exonum-supervisor 使用Apache License(版本2.0)许可。有关详细信息,请参阅LICENSE

依赖项

~70MB
~1.5M SLoC