Documentation ¶
Overview ¶
Package permission
@author: xwc1125
Package permission ¶
@author: xwc1125
Package permission ¶
@author: xwc1125
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChainAccessType ¶
type ChainAccessType uint64
ChainAccessType 链准入类型
const ( STRICT ChainAccessType = iota // 强制限制,跟权限有关,OTHER无权限进入 LIGHT // 所有节点可以进入,other 只能同步txHash, NONE // 所有节点可以进入,都可以同步,节点会给其他任意节点广播 )
type DataPermissionOp ¶
type DataPermissionOp uint64
DataPermissionOp 交易数据权限
const ( AddOp DataPermissionOp = iota // 增 DelOp // 删 UpdateOp // 改 QueryOp // 查 )
type DataPermissionOpData ¶
type DataPermissionOpData struct { Addr string // 地址 Name string // 名称 Height uint64 // 有效期截止高度,0无限制 RoleType RoleType // 角色 Opt DataPermissionOp // 操作 }
DataPermissionOpData 交易数据权限
type DataSyncOp ¶
type DataSyncOp uint64
DataSyncOp 数据同步类型
const ( FULL DataSyncOp = iota // 全数据 MUCH // 无extra数据 LESS // 只有Hash NULL // 无数据 )
TODO 如果只是同步Hash,那么state数据无法同步,因此当前不支持只同步hash
type GenesisPermission ¶
type GenesisPermission struct { Type ChainAccessType `json:"type"` // 权限类型 SupervisorAlloc MemberInfoMap `json:"supervisor_alloc"` // 监管预设 PeerPermissionAlloc map[string]PeerPermissionAlloc `json:"peer_permission_alloc"` // 节点预设 }
GenesisPermission 创世权限
type KMemberInfo ¶
type KMemberInfo struct { Key string Value MemberInfo }
type MemberInfo ¶
type MemberInfo struct { Name string `json:"name"` Height uint64 `json:"height"` // 区块链高度【Admin&Peer和Height有关】 }
MemberInfo 成员信息
type MemberInfoMap ¶
type MemberInfoMap map[string]MemberInfo
func NewMemberInfoMap ¶
func NewMemberInfoMap() MemberInfoMap
func (*MemberInfoMap) Put ¶
func (m *MemberInfoMap) Put(key string, info MemberInfo)
type PeerPermissionAlloc ¶
type PeerPermissionAlloc struct { Colleague MemberInfoMap `json:"colleague"` Observer MemberInfoMap `json:"observer"` }
PeerPermissionAlloc peer权限分配
func (*PeerPermissionAlloc) Decode ¶
func (i *PeerPermissionAlloc) Decode(bytes []byte) error
func (*PeerPermissionAlloc) Encode ¶
func (i *PeerPermissionAlloc) Encode() ([]byte, error)
type RoleType ¶
type RoleType uint64
RoleType 角色类型
const ( ADMIN RoleType = 0 // 管理员[共识中添加][全部权限] SUPERVISOR RoleType = 1 // 监管员[可同步全数据,不能产块、广播] COLLEAGUE RoleType = 2 // 同事[可同步全数据,不能产块、广播] PEER RoleType = 3 // 成员[共识中添加],[同步无Extra数据,能产块、广播] OBSERVER RoleType = 4 // 观察者[同步无Extra数据,不能产块、广播] OTHER RoleType = 5 // 其他[STRICT模式,无法进入链] )
同事及同事级别以上的角色能够同步私有数据
Click to show internal directories.
Click to hide internal directories.