454  
权限
作者: 姜天雨 于 2021年07月14日 发布在分类 / 区块链基础知识 / 底层框架资料 / GoQuorum 下,并于 2021年07月14日 编辑

权限

配置基本权限

节点权限用于定义:

特定  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 到每个节点的数据目录中

从早期版本迁移

从早期版本迁移以启用权限功能时需要遵循以下步骤

  •   在早期版本中关闭正在运行的网络。
  •   需要将 maxCodeSize 属性 genesis.json 设置为 35 。更新 genesis.json 以反映相同
粘贴图片
  • 执行  geth --datadir <data dir path> init genesis.json
  • 使用最新的  geth 启动网络并按照前面设置中的说明部署合约。其余步骤将类似于建立一个新网络
粘贴图片





 推荐知识

 历史版本

修改日期 修改人 备注
2021-07-14 15:41:53[当前版本] 姜天雨 修改内容
2021-07-14 15:40:47 姜天雨 创建版本

 附件

附件类型

PNGPNG

  目录
    区块链服务网络发展联盟