我正在分析Hyperledger结构中的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);
然后我想写我自己的scratch.so智能合同,开始研究/分析,偶然发现了超级分类账基金会提供的录像。
在这段视频中,主持人说每一个智能合同都必须从合同类扩展。类包含的方法如下
beforeTransaction()
afterTransaction()
createContext()
等
因此,我在Java工作区中搜索了Contract,并在其中找到了不同的方法。比如
Transaction createTransaction(String name);
submitTransaction(String name, String... args)
evaluateTransaction(String name, String... args)
所以我的问题
是否需要导入此依赖项或现有合同interface(org.hyperledger.fabric.gateway.Contract)以编写新的智能合同?
发布于 2022-06-28 15:10:43
为Fabric编写应用程序有两个编码方面。一种是智能契约(也称为链码)。另一个是客户端应用程序,它将发送事务请求,从而导致智能契约中的功能被执行。
首先以SmartContract为例,扩展契约接口,然后编写各种事务函数(例如createAsset)。
要‘运行’这些事务功能,客户端应用程序需要调用、提交或评估事务。只有在提交了交易函数后,才会对分类账进行更改。因此,计算实际上只是一个查询。
总之,您需要使用两个APIs一个用于契约,一个用于客户端应用程序。
https://stackoverflow.com/questions/72748253
复制相似问题