为什么 Go 链码不需要注解?
Why doesn't Go chaincode need annotations?
通过查看 https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic 中的 chaincode-java 和 chaincode-go,我发现 java 实现需要像 @Transaction
和 @Contract
这样的注释,而 Go 则没有。
与 Java 一样,我可以使用 @Contract(name)
更改合约名称,在 Go 中我该怎么做?
如果 Go 不需要 @Transaction(intent)
,为什么 Java 需要它?
Go 不支持注解。 fabric-contract-api-go
将每个 public 方法都变成可访问的操作,该方法将智能合约作为接收方并使用反射来构建元数据和此类事物(来自 v2.X)。
Java 支持注解。 Java 中的反射与 Go 中的反射方式不同,它的性能非常差。因此,注释是首选。
除了语法之外,语言在很多方面都不同。
关于链代码名称,您可以在打包 Go 链代码时指定首选名称和版本号。它不依赖于源代码。
通过查看 https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic 中的 chaincode-java 和 chaincode-go,我发现 java 实现需要像 @Transaction
和 @Contract
这样的注释,而 Go 则没有。
与 Java 一样,我可以使用 @Contract(name)
更改合约名称,在 Go 中我该怎么做?
如果 Go 不需要 @Transaction(intent)
,为什么 Java 需要它?
Go 不支持注解。 fabric-contract-api-go
将每个 public 方法都变成可访问的操作,该方法将智能合约作为接收方并使用反射来构建元数据和此类事物(来自 v2.X)。
Java 支持注解。 Java 中的反射与 Go 中的反射方式不同,它的性能非常差。因此,注释是首选。
除了语法之外,语言在很多方面都不同。
关于链代码名称,您可以在打包 Go 链代码时指定首选名称和版本号。它不依赖于源代码。