Java 链码中的初始化等价物

Init equivalent in Java Chaincode

Java 链码中的 Init 函数等价于什么?我一直在看这个 documentation 但我无法找出当我 运行 peer chain code instantiate...

时将调用什么函数

这是围棋变体。

func (t *SimpleAsset) Init(stub shim.ChaincodeStubInterface) peer.Response {
}

我正在寻找在部署 java 链代码时初始化分类帐的等效方法或方法。我的 Chaincode 正在实现 ContractInterface.

java 也有类似的方法,名称相同 "init"

public Response init(ChaincodeStub stub) {
 ....
}

Sample Java Chaincode

可以参考这个

使用 ContractInterface 无法区分 Init 和 Invoke,这是 Contract 接口的局限性。您将必须通过其他方式确定它是否是实例化请求。为了这个例子,一种方法是在你的合约上有一个名为 instantiate 的方法,你将在实例化智能合约时调用这个方法。它应该有保护代码,这样它就不能在任何其他时间被调用,通常会检查世界状态中的某些东西以查看它是否存在,这确定实例化已经被执行。