-
Notifications
You must be signed in to change notification settings - Fork 508
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[FAB-8615] Remove Channel dependency from ChannelConfig
Moved functionality to query the latest config block from the orderer to the Resource interface. This is in preparation for the upcoming deprecation of the Channel interface. Change-Id: I75eb2b54153128dc8aa64d43baa75333b99ca79b Signed-off-by: Divyank Katira <Divyank.Katira@securekey.com>
- Loading branch information
Showing
10 changed files
with
204 additions
and
89 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/* | ||
Copyright SecureKey Technologies Inc. All Rights Reserved. | ||
SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
// Package resource provides access to fabric network resource management, typically using system channel queries. | ||
package resource | ||
|
||
import ( | ||
"github.com/golang/protobuf/proto" | ||
ab "github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/protos/orderer" | ||
"github.com/hyperledger/fabric-sdk-go/pkg/context/api/fab" | ||
ccomm "github.com/hyperledger/fabric-sdk-go/pkg/core/config/comm" | ||
"github.com/hyperledger/fabric-sdk-go/pkg/fab/txn" | ||
"github.com/hyperledger/fabric-sdk-go/third_party/github.com/hyperledger/fabric/protos/common" | ||
"github.com/pkg/errors" | ||
) | ||
|
||
// block retrieves the block at the given position | ||
func (r *Resource) block(orderers []fab.Orderer, channel string, pos *ab.SeekPosition) (*common.Block, error) { | ||
th, err := txn.NewHeader(r.clientContext, channel) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "generating TX ID failed") | ||
} | ||
|
||
channelHeaderOpts := txn.ChannelHeaderOpts{ | ||
TxnHeader: th, | ||
TLSCertHash: ccomm.TLSCertHash(r.clientContext.Config()), | ||
} | ||
seekInfoHeader, err := txn.CreateChannelHeader(common.HeaderType_DELIVER_SEEK_INFO, channelHeaderOpts) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "CreateChannelHeader failed") | ||
} | ||
|
||
seekInfoHeaderBytes, err := proto.Marshal(seekInfoHeader) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "marshal seek info failed") | ||
} | ||
|
||
signatureHeader, err := txn.CreateSignatureHeader(th) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "CreateSignatureHeader failed") | ||
} | ||
|
||
signatureHeaderBytes, err := proto.Marshal(signatureHeader) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "marshal signature header failed") | ||
} | ||
|
||
seekHeader := &common.Header{ | ||
ChannelHeader: seekInfoHeaderBytes, | ||
SignatureHeader: signatureHeaderBytes, | ||
} | ||
|
||
seekInfo := &ab.SeekInfo{ | ||
Start: pos, | ||
Stop: pos, | ||
Behavior: ab.SeekInfo_BLOCK_UNTIL_READY, | ||
} | ||
|
||
seekInfoBytes, err := proto.Marshal(seekInfo) | ||
if err != nil { | ||
return nil, errors.Wrap(err, "marshal seek info failed") | ||
} | ||
|
||
payload := common.Payload{ | ||
Header: seekHeader, | ||
Data: seekInfoBytes, | ||
} | ||
|
||
return txn.SendPayload(r.clientContext, &payload, orderers) | ||
} | ||
|
||
// newNewestSeekPosition returns a SeekPosition that requests the newest block | ||
func newNewestSeekPosition() *ab.SeekPosition { | ||
return &ab.SeekPosition{Type: &ab.SeekPosition_Newest{Newest: &ab.SeekNewest{}}} | ||
} | ||
|
||
// newSpecificSeekPosition returns a SeekPosition that requests the block at the given index | ||
func newSpecificSeekPosition(index uint64) *ab.SeekPosition { | ||
return &ab.SeekPosition{Type: &ab.SeekPosition_Specified{Specified: &ab.SeekSpecified{Number: index}}} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.