在 javascript 的一个链码中部署和调用多个智能合约
Deploy and invoke multiple smart contract in one chaincode in javascript
有谁知道我如何在一个链码中部署多个 javascript 智能合约并在 CouchDB 中调用具有不同文件的所有智能合约?
智能合约本质上是链代码文件中的不同功能,您可以在同一个链代码中拥有多个智能合约。您必须创建一个从 fabric-contract-api
扩展 Contract
class 的 class,并在其中定义您的函数。最后,您需要导出您的 class。
可以在这里找到一个简单的例子:https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic/chaincode-javascript.
调用智能合约可以通过应用程序来完成。
javascript 应用示例可在此处找到:https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic/application-javascript
一个链代码安装和实例化将导致沙发数据库中的一个数据库(我想这就是你所说的一个文件的意思)。所有 putState 和 getState 都将在 CouchDB 中从该数据库中放入和获取数据。如果在 HLF 网络中安装了另一个名称不同的链码,则会在 CouchDB 中创建一个新的数据库,并且该第二个链码放入和获取的所有数据都将来自第二个数据库。这就是 HLF 如何确保两个链代码不会看到彼此的数据,因为它们一开始就保持分开。
现在,正如上面的回答所说,每个智能合约都是链代码中的一个函数。您可以在一个链代码中编写所有 API/ 函数,或者开始为每个函数编写一个链代码。这会改变 HLF 在 CouchDB 中创建的数据库数量,但这实际上取决于您想要做什么。
有谁知道我如何在一个链码中部署多个 javascript 智能合约并在 CouchDB 中调用具有不同文件的所有智能合约?
智能合约本质上是链代码文件中的不同功能,您可以在同一个链代码中拥有多个智能合约。您必须创建一个从 fabric-contract-api
扩展 Contract
class 的 class,并在其中定义您的函数。最后,您需要导出您的 class。
可以在这里找到一个简单的例子:https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic/chaincode-javascript.
调用智能合约可以通过应用程序来完成。 javascript 应用示例可在此处找到:https://github.com/hyperledger/fabric-samples/tree/main/asset-transfer-basic/application-javascript
一个链代码安装和实例化将导致沙发数据库中的一个数据库(我想这就是你所说的一个文件的意思)。所有 putState 和 getState 都将在 CouchDB 中从该数据库中放入和获取数据。如果在 HLF 网络中安装了另一个名称不同的链码,则会在 CouchDB 中创建一个新的数据库,并且该第二个链码放入和获取的所有数据都将来自第二个数据库。这就是 HLF 如何确保两个链代码不会看到彼此的数据,因为它们一开始就保持分开。
现在,正如上面的回答所说,每个智能合约都是链代码中的一个函数。您可以在一个链代码中编写所有 API/ 函数,或者开始为每个函数编写一个链代码。这会改变 HLF 在 CouchDB 中创建的数据库数量,但这实际上取决于您想要做什么。