这个问题,其实应该不是问题,如果确实有问题,请详细阅读 Fabric 网络部署 一节。
个人建议先将Spring Fabric Gateway一节再看一遍。
个人建议,还是先将Spring Fabric Gateway一节再看一遍。
然后在源码中找到FabricLedger
这个类,你会发现,其实你想要的东西都在这里面,什么区块高度、当前交易Hash、通道、组织等等。
怎么才能取到FabricLedger
这个对象呢?
因为我们使用的Spring框架,在SpringFabricGatewayAutoConfigure
这个配置中,我们已经为你注册了一个IFabricInfoService
的服务,你可以直接拿来用。
其实,不止FabricLedger
,我们还封装了FabricBlock
,FabricTransaction
等一系列实用的类,方便在实际的应用场景中使用。
不信你看:
public interface IFabricInfoService {
/**
* Query Fabric Info.
*/
FabricQueryResponse<FabricLedger> queryFabricLedger();
/**
* Query fabric block by using block number.
*/
FabricQueryResponse<FabricBlock> queryBlockByNumber(long blockNumber);
/**
* Query fabric block by using transaction id.
*/
FabricQueryResponse<FabricBlock> queryBlockByTransactionID(String txId);
/**
* Query fabric block by using block hash.
*/
FabricQueryResponse<FabricBlock> queryBlockByHash(byte[] blockHash);
/**
* Paging query fabric blocks.
*
*/
FabricPagination<FabricBlock> queryBlocks(FabricPaginationQuery<FabricBlock> query);
/**
* Query all transactions of a block number.
*/
FabricQueryResponse<List<FabricTransaction>> queryTransactions(long blockNumber);
/**
* Query transaction reads and writes of a transaction id.
*/
FabricQueryResponse<FabricTransactionRWSet> queryTransactionRWSet(String txId);
/**
* Query history of object with given key and type.
*/
FabricQueryResponse<List<FabricHistory>> queryHistory(String type, String key);
/**
* Query transaction with id.
*/
FabricQueryResponse<FabricTransaction> queryTransaction(String txid);
}
再次强调一下:
除了区块高度
、交易Hash
这些值以外,如通道
,链码名
,节点名
这些信息本身从Fabric网络是取不到的,为了使用方便,我们把这些都配置在了配置文件中。
正在撰写中……
正在撰写中……
正在撰写中……
正在撰写中……