![](/img/trans.png)
[英]Problems to POST chaincode (smart contract) to hyperledger-fabric using API
[英]Query on Contract JAVA API Hyperledger Fabric
我正在分析 Hyperledger Fabric 中的 Fabcar Java 項目。 以下是項目中的依賴項。 來自 pom.xml 的片段
<dependencies>
<dependency>
<groupId>org.hyperledger.fabric</groupId>
<artifactId>fabric-gateway-java</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.4.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.4.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.12.2</version>
<scope>test</scope>
</dependency>
我能夠在其中運行程序。 喜歡
EnrollAdmin.main(null);
RegisterUser.main(null);
ClientApp.main(null);
然后我想從頭開始編寫自己的智能合約。所以開始研究/分析並偶然發現了Hyperledger Foundation 的視頻
在這個視頻中,演示者說每個智能合約都必須從 Contract 類擴展。 合同類包含類似的方法
beforeTransaction()
afterTransaction()
createContext()
ETC
所以我在我的 Java 工作區中搜索了 Contract 類,發現其中存在不同的方法。 如
Transaction createTransaction(String name);
submitTransaction(String name, String... args)
evaluateTransaction(String name, String... args)
所以我的問題
合同類是否已升級,我正在觀看舊教程或者我指的是舊 API?
我還發現,有一個依賴 fabric-chaincode-shim 2.2.4 API,其中包含與視頻教程匹配的方法。
包:org.hyperledger.fabric.contract
接口:合約接口
我是否必須導入此依賴項或我現有的合約接口(org.hyperledger.fabric.gateway.Contract)才能編寫新的智能合約?
為 Fabric 編寫應用程序有兩個編碼方面。 一種是智能合約(也稱為鏈碼)。 另一個是客戶端應用程序,它將發送交易請求,導致智能合約中的功能被執行。
首先使用 SmartContract,它將擴展 Contract 接口,然后您將編寫各種交易函數(例如 createAsset)。
要“運行”這些事務功能,客戶端應用程序需要調用提交或評估事務。 只有提交交易功能才會對賬本進行更改。 因此,評估實際上只是一個查詢。
總之,您需要使用兩種 API - 一種用於合約,一種用於客戶端應用程序。
createContext()、beforeTransaction() 和 afterTransaction() 方法是 Hyperledger Fabric contractapi的一部分。 這些方法可用於鏈代碼。 createTransaction()、submitTransaction() 和 evaluateTransaction() 是應用程序網關的一部分。 應用程序網關包用於與 Fabric 網絡進行交互。 您可以使用應用程序網關調用/查詢鏈代碼。 兩者的樣品都可以在fabric-samples 中找到。 更多信息請參考官方文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.