开发智能合约
GoQuorum 使用标准 Solidity 编写智能合约,通常,你开发的这些智能合约与开发以太坊的智能合约一样。 智能合约可以是公开的(即,给 GoQuorum 网络上的所有参与者可见和可执行),也可以是一个或多个网络参与者私有的。 请注意, GoQuorum 不会引入新的合约类型。
先决条件
将标准的以太坊风格的交易发送到给定的网络,将使网络上的所有参与者都可以查看和执行该交易。 与以太坊一样,对于合约创建交易,将 to 字段留空。
发送公共交易的示例 JSON RPC API 调用:
有关 sendTransaction 调用的详细信息,请参阅 GoQuorum API 页面,其中包括对标准 Ethereum 调用的一些修改。
创建私有交易/合约
要将交易 / 智能合约设为私有并因此只能由 子网 查看和执行,请发送标准的以太坊交易,但包括 GoQuorum 特定的 privateFor 参数。 privateFor 用于提供交易 / 合约的参与者列表。 每个参与者都由 Privacy Manager 公钥标识。
发送私有交易的 JSON RPC API 调用示例:
有关 sendTransaction 调用的详细信息,请参阅 GoQuorum API 页面,其中包括对标准 Ethereum 调用的一些修改。
GoQuorum 合约设计注意事项
私有合约不能更新公共合约。 这是因为并非所有参与者都能够执行私有合约,因此如果该合约可以更新公共合约,那么每个参与者最终都会为公共合约获得不同的状态。
合约一旦公开,就不能再私有化。 如果您确实需要将公共合约设为私有,则需要将其从区块链中删除并创建新的私有合约。