创建一个 Corda 网络

新建一个corda网络

一个Corda网络有许多运行节点的机器组成,其中包含一个独立作为网络映射服务的节点。这些节点通信时使用持久协议,来创建和验证transactions。

有四种按功能分类的节点,这些功能节点都以服务的形式提供,一个节点可以运行其中几个。

  • Network map: 运行network map 的节点,提供了一种解决节点物理地址和相关公钥的一致性方法。
  • Notary: 运行notary服务的节点,会为state花费做公证,并且对一个transaction是否发生多次花费有最终话语权。
  • Oracle: Oracle服务通过提供影响transaction有效性事实的方式,将账本和外界世界连接起来。
  • 常规节点:此类节点都有一个vault,并且可以通过协议方式和其它节点、notary、oracle、他们的私有账本进行通信。

 

设置自己的网络

证书

每一个在Corda网络的节点必须有一个被network root CA签名过的证书。参考 Network Permissioning 获得更多信息。

 

配置

在每个节点的文件目录下都有一个可以新建和编辑的node.conf文件,详细信息

Node configuration

配置例子:

myLegalName : “O=Bank A,L=London,C=GB”
keyStorePassword : “cordacadevpass”
trustStorePassword : “trustpass”
dataSourceProperties : {
dataSourceClassName : org.h2.jdbcx.JdbcDataSource
“dataSource.url” : “jdbc:h2:file:”${baseDirectory}”/persistence”
“dataSource.user” : sa
“dataSource.password” : “”
}
p2pAddress : “my-corda-node:10002”
rpcAddress : “my-corda-node:10003”
webAddress : “localhost:10004”
extraAdvertisedServiceIds : [ “corda.interest_rates” ]
networkMapService : {
address : “my-network-map:10000”
legalName : “O=Network Map Service,OU=corda,L=London,C=GB”
}
useHTTPS : false
rpcUsers : [
{ username=user1, password=letmein, permissions=[ StartProtocol.net.corda.protocols.CashProtocol ] }
]
devMode : true
// Certificate signing service will be hosted by R3 in the near future.
//certificateSigningService : “https://testnet.certificate.corda.net

重要的network配置参数:

  • p2pAddress:  这个参数指定的一个主机和端口,Artemis会用来和其它节点绑定进行消息传递。需要注意的是这个地址绑定不是my-corda-node而是::(在全network接口里的所有地址)。这个主机名称指定必须可以被网络中的其它节点解析。上述的配置是VPN中的机器可以被被解析的名称。
  • rpcAddress: Artemis绑定到RPC调用的地址。
  • webAddress: webserver绑定的地址。注意,这个端口必须与p2pAddress和rpcAddress不同,如果它们同在一个机器上。
  • networkMapService: network map service 节点运行的详细信息。如果此节点运行服务,则此项配置不能被指定。

 

启动节点

你可以按照任何顺序启动节点。需要注意的是节点在成功注册到network map之后,才能启动完毕。

你应该看到这样的最终日志信息行Node started up and registered, 表明节点已经启动完毕。

在过程管理方面没有规定的方法。你可以手动启动jar包或者可以是使用系统启动。

 

日志

只有少数重要的信息会输出到控制台。有关细节和诊断问题,请检查日志。

日志用标准log4j2来管理的,可以根据需要进行配置更改。日志默认输出到文件

NODE_DIRECTORY/logs/。

 

连接到节点

一旦一个节点启动成功后,你可以连接到它,并进行诸如初始化协议、查询state等操作。基于你的network配置,你可能需要打开通道进行远程操作。

查看Using the client RPC API 了解如何建立RPC连接。

备注:一个客户端会和具有的单一身份和单节点进行关联,单个节点只能看到它们自己的账本。

网络准入

网络准入

Corda 网络是有准入机制的。要连接一个网 […]

发表评论

电子邮件地址不会被公开。 必填项已用*标注