权限
配置基本权限
节点权限用于定义:
特定 GoQuorum 节点能够连接到的节点
特定 GoQuorum 节点能够从中接收连接的节点
在基本权限模型中, --permissioned 在启动节点时使用命令行选项在单个节点级别管理权限。
如果节点以 --permissionedset 开头,则该节点会查找 <data-dir>/permissioned-nodes.json 文件。此文件包含此节点可以连接到并接受来自的连接的节点列表。换句话说,如果启用了许可,则只有 permissioned-nodes.json 文件中列出的节点才会成为网络的一部分。
如果 --permissioned 设置,则 permissioned-nodes.json 必须提供文件。如果设置了该选项但此文件中不存在节点,则该节点无法进行任何向外连接或接受任何传入连接。
格式 permissioned-nodes.json 类似于 static-nodes.json :
例如,包括散列,示例文件可能如下所示:
配置增强权限
启用增强权限模型的步骤如下所述:
新网络
1. 调出将成为网络一部分的初始节点集
2. 部署 PermissionsUpgradable.sol 在网络中。该合约的部署将需要提供监护人帐户作为部署的一部分。
3. 部署其余的合约。所有其他合约都需要合约地址 PermissionsUpgradable.sol 作为部署的一部分。
4. 部署所有合约后,创建一个文件 permission-config.json ,该文件将具有以下结构:
5. 一旦合同部署, init 在 PermissionsUpgradable.sol 需要由监护人帐户执行。这将链接接口和实现合同。以下是在 geth 提示符处加载可升级合约的示例脚本:
6.geth 适当替换合约地址后,在提示符处加载上述脚本并执行 upgr.init(intr, impl, {from: <guardian account>, gas: 4500000})
7. 将 geth 网络中的所有节点下线,并复制 permission-config.json 到每个节点的数据目录中
从早期版本迁移
从早期版本迁移以启用权限功能时需要遵循以下步骤