github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/integration/ordererclient/orderer_client.go (about)

     1  /*
     2  Copyright hechain All Rights Reserved.
     3  
     4  SPDX-License-Identifier: Apache-2.0
     5  */
     6  
     7  package ordererclient
     8  
     9  import (
    10  	"context"
    11  
    12  	"github.com/hechain20/hechain/integration/nwo"
    13  	"github.com/hyperledger/fabric-protos-go/common"
    14  	"github.com/hyperledger/fabric-protos-go/orderer"
    15  	"github.com/pkg/errors"
    16  )
    17  
    18  // Broadcast sends given env to Broadcast API of specified orderer.
    19  func Broadcast(n *nwo.Network, o *nwo.Orderer, env *common.Envelope) (*orderer.BroadcastResponse, error) {
    20  	conn := n.OrdererClientConn(o)
    21  	defer conn.Close()
    22  
    23  	broadcaster, err := orderer.NewAtomicBroadcastClient(conn).Broadcast(context.Background())
    24  	if err != nil {
    25  		return nil, err
    26  	}
    27  
    28  	err = broadcaster.Send(env)
    29  	if err != nil {
    30  		return nil, err
    31  	}
    32  
    33  	resp, err := broadcaster.Recv()
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  
    38  	return resp, nil
    39  }
    40  
    41  // Deliver sends given env to Deliver API of specified orderer.
    42  func Deliver(n *nwo.Network, o *nwo.Orderer, env *common.Envelope) (*common.Block, error) {
    43  	conn := n.OrdererClientConn(o)
    44  	defer conn.Close()
    45  
    46  	deliverer, err := orderer.NewAtomicBroadcastClient(conn).Deliver(context.Background())
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  
    51  	err = deliverer.Send(env)
    52  	if err != nil {
    53  		return nil, err
    54  	}
    55  
    56  	resp, err := deliverer.Recv()
    57  	if err != nil {
    58  		return nil, err
    59  	}
    60  
    61  	blk := resp.GetBlock()
    62  	if blk == nil {
    63  		return nil, errors.Errorf("block not found")
    64  	}
    65  
    66  	return blk, nil
    67  }