shiroclient uses the open source fabric-go-sdk project to create and manage transactions throughout the transaction lifecycle, for transactions that interact with luther chaincode (substrate). When shiroclient receives a request it needs to determine which peers to send the transaction to, for simulation and endorsement . As part of this lookup, shiroclient uses the peer discovery service provided by fabric. During peer discovery, shiroclient will communicate with an orderer to retrieve network configuration, which includes the organisations and peers on the network. After submitting a transaction to a peer for simulation & endorsement, shiroclient inspects the transaction response to determine if the transaction requires commitment. For example, substrate provides mechanisms for business logic to ensure that a transaction is not committed (see cc:force-tx-no-commit), similarly transactions without write-sets or transactions that throw an exception are not committed). If shiroclient determines the transaction requires commitment, then it passes the request to the fabric-go-sdk for commitment.