首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >合同JAVA超级分类器结构的查询

合同JAVA超级分类器结构的查询
EN

Stack Overflow用户
提问于 2022-06-24 18:48:41
回答 2查看 41关注 0票数 0

我正在分析Hyperledger结构中的Fabcar Java项目。下面是项目中的依赖项。来自pom.xml的片段

代码语言:javascript
运行
复制
 <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>

我能运行里面的程序。喜欢

代码语言:javascript
运行
复制
EnrollAdmin.main(null);
RegisterUser.main(null);
ClientApp.main(null);

然后我想写我自己的scratch.so智能合同,开始研究/分析,偶然发现了超级分类账基金会提供的录像

在这段视频中,主持人说每一个智能合同都必须从合同类扩展。类包含的方法如下

代码语言:javascript
运行
复制
beforeTransaction()
afterTransaction()
 createContext()

因此,我在Java工作区中搜索了Contract,并在其中找到了不同的方法。比如

代码语言:javascript
运行
复制
Transaction createTransaction(String name);
submitTransaction(String name, String... args) 
evaluateTransaction(String name, String... args)

所以我的问题

  1. 合同类升级了吗?我正在看旧教程,或者我指的是旧API?
  2. 我还发现,有一个依赖的fabric-chaincode-shim 2.2.4API,它包含与视频教程相匹配的方法。 包装: org.hyperledger.fabric.contract 接口: ContractInterface

是否需要导入此依赖项或现有合同interface(org.hyperledger.fabric.gateway.Contract)以编写新的智能合同?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-28 15:10:43

为Fabric编写应用程序有两个编码方面。一种是智能契约(也称为链码)。另一个是客户端应用程序,它将发送事务请求,从而导致智能契约中的功能被执行。

首先以SmartContract为例,扩展契约接口,然后编写各种事务函数(例如createAsset)。

要‘运行’这些事务功能,客户端应用程序需要调用、提交或评估事务。只有在提交了交易函数后,才会对分类账进行更改。因此,计算实际上只是一个查询。

总之,您需要使用两个APIs一个用于契约,一个用于客户端应用程序。

票数 0
EN

Stack Overflow用户

发布于 2022-06-28 15:27:39

createContext()、beforeTransaction()和afterTransaction()方法是Hyperledger 宫缩的一部分。这些方法可以在链码中使用。createTransaction submitTransaction()、evaluateTransaction()和​()是应用网关的一部分。应用程序网关包用于与Fabric网络交互。您可以使用应用程序网关调用/查询链码。这两种方法的样本都可以在织物样品中获得。有关更多信息,请参考正式文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72748253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档