总结
以下的结论是根据反复的部署于控制台的反复试验,并且于官方人员确认过的结论。
-
一个机构至少需要一个RPC和Gateway,否则无法与链上通信。
-
节点随机选择Gateway通信,指的是随机选择本机构下的一个Gateway通讯。
-
rpc与节点的通讯是随机选择当前机构下的节点进行通讯。无法指定到其他机构下的节点。
-
节点与节点的通讯,需要通关自己公司的 网关。
-
可以实现把多个机构ABCD,共用同一个RPC和网关。但需要保证在区块链的配置上,让ABCD的机构名相同。
具体问题:
- 网关和 RPC 的配置。
答:在官方的回答中,说到多个企业可以共用一个网关,在实际的部署和扩展过程中,如果原有RPC和Gateway的[[agency]].name = "companyA",现在想扩展一个companyB的node服务需要保证companyB下有自己的Gateway和RPC。否则companyB下的node服务无法与区块链通讯。也就是说一个新的公司,想要加入第一个节点,需要保证这个公司有自己的RPC和Gateway,除非这个公司的[[agency]].name与其他已有Gateway的公司值相同。
- 为什么新扩展了一个节点,tars上有该服务,在控制台无法查看?
答:可能这个新扩展的节点没有自己的RPC和网关,导致无法与链上通信。
- node节点之间通信的时候,是怎么选择 Gateway 通讯的?
答:是随机选择Gateway通信的。这里的随机选择可能是指的,该节点对应的所有网关(nodeA->gatewayA1、gatewayA2、gatewayA3);也可能是所有节点对应的网关(nodeA->gatewayA1、gatewayA2、gatewayA3、gatewayB1、gatewayB2)。具体是第一种还是第二种,官方人员未明确指出。 我更偏于第一种,随机找本机构下的Gateway。
- 节点之间的通信,是需要访问各自的 网关 的吗?
答:在官方给出的图中指出了,需要通过各自的网关。所以无法实现多个不同机构名的节点使用同一个Gateway(再部署的过程中也无法实现)。
- sdk 和console是怎么与node通信的?
答:是通过RPC的证书通信的,需要把RPC的sdk证书复制到相应的位置,才可以与RPC建立连接,然后与区块链通讯,在发送命令的过程中,是随机选择本机构下的节点发送命令(可能是一次会话一次随机,可能是一次命令一次随机)。可以指定本机构下的默认节点。
- 区块链的权限是怎么设置的?
答:区块链的权限是跟随账户的,创世块的时候指定委员会委员,通过委员会委员使用提案命令给其他账户分配权限。具体可以做到:1. 合约修改类方法的权限调用管理 2.合约部署管理 3.账户与合约的冻结管理(账户的冻结,只能导致无法调用设置类方法,但是能调用查看类方法)
- 扩展 RPC 、 Gateway 、Node具体指的是什么?
答:
扩展RPC、Gateway分别可以指的是:1.给已有RPC1和Gateway1的公司扩展RPC2、Gateway2。
扩展Node分别可以指:1.给已有RPC和Gateway、node1的新公司加一个node2服务。2、给需要后面新加入的公司初次创建RPC、Gateway、node