fabric: github.com/hyperledger/fabric/core/handlers/validation/builtin/v13 Index | Files | Directories

package v13

import "github.com/hyperledger/fabric/core/handlers/validation/builtin/v13"


Package Files

lscc_validation_logic.go validation_logic.go validator.go

type StateBasedValidator Uses

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


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


type Validator Uses

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 Uses

func New(c Capabilities, s StateFetcher, d IdentityDeserializer, pe PolicyEvaluator) *Validator

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

func (*Validator) Validate Uses

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 Uses

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


mocksCode generated by mockery v1.0.0.

Package v13 imports 27 packages (graph) and is imported by 1 packages. Updated 2019-07-23. Refresh now. Tools for package owners.