...

Package v13

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

Overview ▾

type StateBasedValidator

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 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)
}

type Validator

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

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

func New

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

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 channelconfig.ApplicationCapabilities,
) commonerrors.TxValidationError

Subdirectories

Name Synopsis
..
mocks Code generated by mockery v1.0.0.