block

package
v0.0.0-...-3c5d65d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FABRIC int32 = iota // MSP is of FABRIC type
	IDEMIX              // MSP is of IDEMIX type
	OTHER               // MSP is of OTHER TYPE

	// ConsortiumKey is the key for the ConfigValue of a
	// Consortium.
	ConsortiumKey = "Consortium"

	// HashingAlgorithmKey is the key for the ConfigValue of a
	// HashingAlgorithm.
	HashingAlgorithmKey = "HashingAlgorithm"

	// BlockDataHashingStructureKey is the key for the ConfigValue
	// of a BlockDataHashingStructure.
	BlockDataHashingStructureKey = "BlockDataHashingStructure"

	// OrdererAddressesKey is the key for the ConfigValue, OrdererAddresses.
	OrdererAddressesKey = "OrdererAddresses"

	// CapabilitiesKey is the key for the ConfigValue, capabilities.
	// CapabiltiesKey can be used at the channel, application, and orderer levels.
	CapabilitiesKey = "Capabilities"

	// EndpointsKey is the key for the ConfigValue, Endpoints in
	// a OrdererOrgGroup.
	EndpointsKey = "Endpoints"

	// MSPKey is the key for the ConfigValue, MSP.
	MSPKey = "MSP"

	// ConsensusTypeKey is the key for the ConfigValue, ConsensusType.
	ConsensusTypeKey = "ConsensusType"

	// BatchSizeKey is the key for the ConfigValue, BatchSize.
	BatchSizeKey = "BatchSize"

	// BatchTimeoutKey is the key for the ConfigValue, BatchSize.
	BatchTimeoutKey = "BatchTimeout"

	// KafkaBrokersKey is the key for the ConfigValue, KafkaBrokers.
	KafkaBrokersKey = "KafkaBrokers"

	// AdminsPolicyKey is the key used for the admin policy.
	AdminsPolicyKey = "Admins"

	// ReadersPolicyKey is the key used for the read policy.
	ReadersPolicyKey = "Readers"

	// WritersPolicyKey is the key used for the write policy.
	WritersPolicyKey = "Writers"

	// EndorsementPolicyKey is the key used for the endorsement policy.
	EndorsementPolicyKey = "Endorsement"

	// LifecycleEndorsementPolicyKey is the key used for the lifecycle endorsement
	// policy.
	LifecycleEndorsementPolicyKey = "LifecycleEndorsement"

	// BlockValidationPolicyKey is the key used for the block validation policy in
	// the OrdererOrgGroup.
	BlockValidationPolicyKey = "BlockValidation"

	// ChannelCreationPolicyKey is the key used in the consortium config to denote
	// the policy to be used in evaluating whether a channel creation request
	// is authorized.
	ChannelCreationPolicyKey = "ChannelCreationPolicy"

	// ChannelGroupKey is the group name for the channel config.
	ChannelGroupKey = "Channel"

	// ConsortiumsGroupKey is the group name for the consortiums config.
	ConsortiumsGroupKey = "Consortiums"

	// OrdererGroupKey is the group name for the orderer config.
	OrdererGroupKey = "Orderer"

	// ApplicationGroupKey is the group name for the Application config.
	ApplicationGroupKey = "Application"

	// ACLsKey is the name of the ACLs config.
	ACLsKey = "ACLs"

	// AnchorPeersKey is the key name for the AnchorPeers ConfigValue.
	AnchorPeersKey = "AnchorPeers"

	// ImplicitMetaPolicyType is the 'Type' string for implicit meta policies.
	ImplicitMetaPolicyType = "ImplicitMeta"

	// SignaturePolicyType is the 'Type' string for signature policies.
	SignaturePolicyType = "Signature"
)

const

View Source
const (
	BlockTypeTrans = iota
	BlockTypeConfig
)

block type

Variables

This section is empty.

Functions

func ExtractLeaderBlock

func ExtractLeaderBlock(data []byte) (*common.Block, error)

ExtractLeaderBlock extract block from ledger serialize block

func HeaderBytes

func HeaderBytes(b *common.BlockHeader) []byte

HeaderBytes ...

func HeaderHash

func HeaderHash(b *common.BlockHeader) []byte

HeaderHash ...

Types

type ApplicationValues

type ApplicationValues struct {
	ACLs         map[string]string
	Capabilities []string `json:"capabilities,omitempty" db:"capabilities"`
}

ApplicationValues values of application

type Blocklator

type Blocklator struct {
	// contains filtered or unexported fields
}

Blocklator for block translate

func NewBlocklator

func NewBlocklator(raw []byte) (*Blocklator, error)

NewBlocklator return new Blocklator

func NewBlocklatorFromLedgerRaw

func NewBlocklatorFromLedgerRaw(raw []byte) (*Blocklator, error)

NewBlocklatorFromLedgerRaw return new Blocklator from block data in ledger

func (*Blocklator) GetBlockHash

func (bl *Blocklator) GetBlockHash() string

GetBlockHash return block hash

func (*Blocklator) GetBlockNum

func (bl *Blocklator) GetBlockNum() uint64

GetBlockNum return block num

func (*Blocklator) GetBlockPrehash

func (bl *Blocklator) GetBlockPrehash() string

GetBlockPrehash return block previoous hash

func (*Blocklator) GetChannel

func (bl *Blocklator) GetChannel() (string, error)

GetChannel return channel id

func (*Blocklator) GetCommitHash

func (bl *Blocklator) GetCommitHash() (string, error)

GetCommitHash get commit hash of the block

func (*Blocklator) GetConfig

func (bl *Blocklator) GetConfig() *common.Config

GetConfig get config from block

func (*Blocklator) GetMetaDataLastConfig

func (bl *Blocklator) GetMetaDataLastConfig() (uint64, error)

GetMetaDataLastConfig get the last config block num

func (*Blocklator) GetMetaDataTransFilter

func (bl *Blocklator) GetMetaDataTransFilter() ([]bool, error)

GetMetaDataTransFilter 获取交易有效性标志

func (*Blocklator) GetMetaDataTransValidationCode

func (bl *Blocklator) GetMetaDataTransValidationCode() ([]peer.TxValidationCode, error)

GetMetaDataTransValidationCode 获取交易有效性标志

func (*Blocklator) GetSummary

func (bl *Blocklator) GetSummary() (*Summary, error)

GetSummary get block summary info

func (*Blocklator) GetTransactions

func (bl *Blocklator) GetTransactions() []*common.Envelope

GetTransactions get transction envelops from block

func (*Blocklator) ToDesc

func (bl *Blocklator) ToDesc() (*Desc, error)

ToDesc block to Desc

type Cert

type Cert struct {
	Pem string `json:"pem,omitempty" db:"pem"`
	CN  string `json:"cn,omitempty" db:"cn"`
	OU  string `json:"ou,omitempty" db:"ou"`
	Org string `json:"org,omitempty" db:"org"`
}

Cert cert

func NewCert

func NewCert(certRaw []byte) (*Cert, error)

NewCert return new Cert

type CollHashedRwSet

type CollHashedRwSet struct {
	CollectionName string               `json:"collection_name,omitempty" db:"collection_name"`
	HashedRwSet    *kvrwset.HashedRWSet `json:"hashed_rw_set,omitempty" db:"hashed_rw_set"`
	PvtRwSetHash   []byte               `json:"pvt_rw_set_hash,omitempty" db:"pvt_rw_set_hash"`
}

CollHashedRwSet encapsulates 'kvrwset.HashedRWSet' proto message for a specific collection

type ConfigDesc

type ConfigDesc struct {
	OrdererOrgs       []*GroupOrg            `json:"orderer_orgs" db:"orderer_orgs"`
	ConsortiumOrgs    map[string][]*GroupOrg `json:"consortium_orgs" db:"consortium_orgs"`
	ApplicationOrgs   []*GroupOrg            `json:"application_orgs" db:"application_orgs"`
	ApplicationValues *ApplicationValues     `json:"application_values" `
	Values            *ConfigValues          `json:"values" db:"values"`
	Consensus         *ConsensusInfo         `json:"consensus" db:"consensus"`
}

ConfigDesc config description

type ConfigValues

type ConfigValues struct {
	Consortium            string   `json:"consortium,omitempty" db:"consortium"`
	HashingAlgorithm      string   `json:"hashing_algorithm,omitempty" db:"hashing_algorithm"`
	OrdererAddresses      []string `json:"orderer_addresses,omitempty" db:"orderer_addresses"`
	BlockDataHashingWidth int      `json:"block_data_hashing_width,omitempty" db:"block_data_hashing_width"`
	Capabilities          []string `json:"capabilities,omitempty" db:"capabilities"`
}

ConfigValues config values

type Configlator

type Configlator struct {
	// contains filtered or unexported fields
}

Configlator 配置信息解析

func NewConfiglator

func NewConfiglator(config *common.Config) *Configlator

NewConfiglator 返回一个 Configlator

func (*Configlator) GetApplicationOrgs

func (c *Configlator) GetApplicationOrgs() []*GroupOrg

GetApplicationOrgs 解析配置块中的应用组织

func (*Configlator) GetApplicationValues

func (c *Configlator) GetApplicationValues() *ApplicationValues

GetApplicationValues 解析 Application 节中的 Values 信息

func (*Configlator) GetConsensusInfo

func (c *Configlator) GetConsensusInfo() *ConsensusInfo

GetConsensusInfo 解析配置块中的共识相关配置信息

func (*Configlator) GetConsortiumOrgs

func (c *Configlator) GetConsortiumOrgs() map[string][]*GroupOrg

GetConsortiumOrgs 解析系统配置块中的联盟组织

func (*Configlator) GetOrdererOrgs

func (c *Configlator) GetOrdererOrgs() []*GroupOrg

GetOrdererOrgs 解析配置块中的 orderer 组织

func (*Configlator) GetValues

func (c *Configlator) GetValues() *ConfigValues

GetValues 解析配置块中的基本参数信息

func (*Configlator) ToDesc

func (c *Configlator) ToDesc() *ConfigDesc

ToDesc return ConfigDesc

type ConsensusInfo

type ConsensusInfo struct {
	Type              string                   `json:"type,omitempty" db:"type"`
	RaftMetadata      *etcdraft.ConfigMetadata `json:"raft_metadata,omitempty" db:"raft_metadata"`
	MaxMessageCount   uint32                   `json:"max_message_count,omitempty" db:"max_message_count"`
	AbsoluteMaxBytes  uint32                   `json:"absolute_max_bytes,omitempty" db:"absolute_max_bytes"`
	PreferredMaxBytes uint32                   `json:"preferred_max_bytes,omitempty" db:"preferred_max_bytes"`
	BatchTimeOut      string                   `json:"batch_time_out,omitempty" db:"batch_time_out"`
	Borkers           []string                 `json:"borkers,omitempty" db:"borkers"`
	Capabilities      []string                 `json:"capabilities,omitempty" db:"capabilities"`
}

ConsensusInfo 配置快中的共识信息

type Desc

type Desc struct {
	Summary
	// BlockNum     uint64      `json:"block_num" db:"block_num"`
	// Hash         string      `json:"hash" db:"hash"`
	// PreHash      string      `json:"pre_hash" db:"pre_hash"`
	// Channel      string      `json:"channel" db:"channel"`
	// Type         int         `json:"type" db:"type"` // 0: transaction 1: config
	Config       *ConfigDesc `json:"config" db:"config"`
	Transactions []*TranDesc `json:"transactions" db:"transactions"`
}

Desc block description

type Envelope

type Envelope struct {
	Payload struct {
		Header struct {
			ChannelHeader   *common.ChannelHeader
			SignatureHeader *common.SignatureHeader
		}
		Transaction struct {
			Header          *common.SignatureHeader
			ChaincodeAction struct {
				Proposal struct {
					Input *peer.ChaincodeSpec
				}
				Response struct {
					ProposalHash    []byte
					ChaincodeAction *peer.ChaincodeAction
					RWSet           *TxRwSet
				}
				Endorses []*peer.Endorsement
			}
		}
	}
	Signature []byte
}

Envelope clean struct for envelope

type GroupOrg

type GroupOrg struct {
	Type           int32    `json:"type" db:"type"`
	TypeName       string   `json:"type_name" db:"type_name"`
	Name           string   `json:"name" db:"name"`
	RootCert       string   `json:"root_cert" db:"root_cert"`
	TLSRootCert    string   `json:"tls_root_cert" db:"tls_root_cert"`
	Admin          string   `json:"admin" db:"admin"`
	RevocationList [][]byte `json:"revocation_list" db:"revocation_list"`
	Endpoints      []string `json:"endpoints" db:"endpoints"` // peer: anchorpeers  orderer: ordereraddress
}

GroupOrg 配置块中的组织信息

type Ledgerlator

type Ledgerlator struct {
	// contains filtered or unexported fields
}

Ledgerlator translator for ledger data

func NewLedgerlator

func NewLedgerlator(ledger *bufio.Reader) *Ledgerlator

NewLedgerlator return new ledgerlator from a Reader

func (Ledgerlator) RetriveBlocks

func (l Ledgerlator) RetriveBlocks() ([][]byte, error)

RetriveBlocks retrive blocks from ledger

type NsRwSet

type NsRwSet struct {
	NameSpace        string             `json:"name_space,omitempty" db:"name_space"`
	KvRwSet          *kvrwset.KVRWSet   `json:"kv_rw_set,omitempty" db:"kv_rw_set"`
	CollHashedRwSets []*CollHashedRwSet `json:"coll_hashed_rw_sets,omitempty" db:"coll_hashed_rw_sets"`
}

NsRwSet encapsulates 'kvrwset.KVRWSet' proto message for a specific name space (chaincode)

type SignInfo

type SignInfo struct {
	MSPID     string `json:"mspid,omitempty" db:"mspid"`
	Cert      *Cert  `json:"cert,omitempty" db:"cert"`
	Signature string `json:"signature,omitempty" db:"signature"`
}

SignInfo sign info

type Summary

type Summary struct {
	BlockNum   uint64 `json:"block_num" db:"block_num"`
	Hash       string `json:"hash" db:"hash"`
	PreHash    string `json:"pre_hash" db:"pre_hash"`
	Channel    string `json:"channel" db:"channel"`
	Type       int    `json:"type" db:"type"` // 0: transaction 1: config
	TransCount int    `json:"trans_count" db:"trans_count"`
	CommitHash string `json:"commit_hash" db:"commit_hash"`
	LastConfig uint64 `json:"last_config" db:"last_config"`
}

Summary block summary info

type TranDesc

type TranDesc struct {
	Channel   string    `json:"channel" db:"channel"`
	TxID      string    `json:"tx_id" db:"tx_id"`
	Time      time.Time `json:"time" db:"time"`
	Chaincode string    `json:"chaincode" db:"chaincode"`
	Func      string    `json:"func" db:"func"`
	Args      []string  `json:"args" db:"args"`
	Resp      struct {
		Status  int32  `json:"status" db:"status"`
		Message string `json:"message" db:"message"`
		Data    string `json:"data" db:"data"`
	} `json:"resp" db:"resp"`
	TxRwSet        *TxRwSet    `json:"tx_rw_set" `
	Filter         bool        `json:"filter" db:"filter"`
	ValidationCode string      `json:"validation_code" db:"validation_code"`
	Signer         *SignInfo   `json:"signer" db:"signer"`
	Endorsers      []*SignInfo `json:"endorsers," db:"endorsers"`
}

TranDesc transaction description

type Translator

type Translator struct {
	// contains filtered or unexported fields
}

Translator translator for transaction envelope

func NewTranslator

func NewTranslator(env *common.Envelope) (*Translator, error)

NewTranslator return new Translator

func (*Translator) GetChannel

func (t *Translator) GetChannel() string

GetChannel return channel id

func (*Translator) GetTxID

func (t *Translator) GetTxID() string

GetTxID return TxID

func (*Translator) ToDesc

func (t *Translator) ToDesc() *TranDesc

ToDesc transaction block to TranDesc

type TxRwSet

type TxRwSet struct {
	NsRwSets []*NsRwSet `json:"ns_rw_sets,omitempty" db:"ns_rw_sets"`
}

TxRwSet 交易读写集

func TxRwSetFromProtoMsg

func TxRwSetFromProtoMsg(protoMsg *rwset.TxReadWriteSet) (*TxRwSet, error)

TxRwSetFromProtoMsg ...

func (*TxRwSet) FromProtoBytes

func (txRwSet *TxRwSet) FromProtoBytes(protoBytes []byte) error

FromProtoBytes 解析 TxRwSet

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL