v13

package
v2.0.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2020 License: Apache-2.0 Imports: 20 Imported by: 219

Documentation

Index

Constants

View Source
const AllowedCharsCollectionName = "[A-Za-z0-9_-]+"

previously imported from ccmetadata.AllowedCharsCollectionName but could not change to avoid non-determinism

Variables

This section is empty.

Functions

This section is empty.

Types

type Capabilities

type Capabilities interface {
	vc.Capabilities
}

Capabilities is the local interface that used to generate mocks for foreign interface.

type IdentityDeserializer

type IdentityDeserializer interface {
	vi.IdentityDeserializer
}

IdentityDeserializer is the local interface that used to generate mocks for foreign interface.

type PolicyEvaluator

type PolicyEvaluator interface {
	vp.PolicyEvaluator
}

PolicyEvaluator is the local interface that used to generate mocks for foreign interface.

type StateBasedValidator

type StateBasedValidator interface {
	// PreValidate sets the internal data structures of the validator needed before validation
	// of transaction `txNum` in the specified block can proceed
	PreValidate(txNum uint64, block *common.Block)

	// Validate determines whether the transaction on the specified channel at the specified height
	// is valid according to its chaincode-level endorsement policy and any key-level validation
	// parametres
	Validate(cc string, blockNum, txNum uint64, rwset, prp, ep []byte, endorsements []*peer.Endorsement) commonerrors.TxValidationError

	// PostValidate sets the internal data structures of the validator needed after the validation
	// code was determined for a transaction on the specified channel at the specified height
	PostValidate(cc string, blockNum, txNum uint64, err error)
}

StateBasedValidator is used to validate a transaction that performs changes to KVS keys that use key-level endorsement policies. This interface is supposed to be called by any validator plugin (including the default validator plugin). The functions of this interface are to be called as follows:

  1. the validator plugin calls PreValidate (even before determining whether the transaction is valid)
  2. the validator plugin calls Validate before or after having determined the validity of the transaction based on other considerations
  3. the validator plugin determines the overall validity of the transaction and then calls PostValidate

type StateFetcher

type StateFetcher interface {
	vs.StateFetcher
}

StateFetcher is the local interface that used to generate mocks for foreign interface.

type Validator

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

Validator implements the default transaction validation policy, which is to check the correctness of the read-write set and the endorsement signatures against an endorsement policy that is supplied as argument to every invoke

func New

New creates a new instance of the default VSCC Typically this will only be invoked once per peer

func (*Validator) Validate

func (vscc *Validator) Validate(
	block *common.Block,
	namespace string,
	txPosition int,
	actionPosition int,
	policyBytes []byte,
) commonerrors.TxValidationError

Validate validates the given envelope corresponding to a transaction with an endorsement policy as given in its serialized form. Note that in the case of dependencies in a block, such as tx_n modifying the endorsement policy for key a and tx_n+1 modifying the value of key a, Validate(tx_n+1) will block until Validate(tx_n) has been resolved. If working with a limited number of goroutines for parallel validation, ensure that they are allocated to transactions in ascending order.

func (*Validator) ValidateLSCCInvocation

func (vscc *Validator) ValidateLSCCInvocation(
	chid string,
	env *common.Envelope,
	cap *pb.ChaincodeActionPayload,
	payl *common.Payload,
	ac vc.Capabilities,
) commonerrors.TxValidationError

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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