区块链开发之Corda训练营笔记13:部署节点
视频地址:https://www.bilibili.com/video/av67440579/?p=13的
1、本节目标
我们将在本机构建一个含有三个节点、一个公证方的demo的corda网络
在我们工程项目的gradle.builde文件中含有部署的命令:
task deployNodes(type: net.corda.plugins.Cordform, dependsOn: ['jar']) {
nodeDefaults {
projectCordapp { deploy = true }
}
node {
name "O=Notary,L=London,C=GB"
notary = [validating: false]
p2pPort 10000
cordapps = []
rpcSettings {
address("localhost:10001")
adminAddress("localhost:10002")
}
}
node {
name "O=PartyA,L=London,C=GB"
p2pPort 10003
rpcSettings {
address("localhost:10004")
adminAddress("localhost:10005")
}
rpcUsers = [[user: "user1", password: "test", permissions: ["ALL"]]]
}
node {
name "O=PartyB,L=New York,C=US"
p2pPort 10006
rpcSettings {
address("localhost:10007")
adminAddress("localhost:10008")
}
rpcUsers = [[user: "user1", password: "test", permissions: ["ALL"]]]
}
node {
name "O=PartyC,L=Lagos,C=NG"
p2pPort 10009
rpcSettings {
address("localhost:10010")
adminAddress("localhost:10011")
}
rpcUsers = [[user: "user1", password: "test", permissions: ["ALL"]]]
}
}
2、具体实施
要做的事情:
- 首先建立测试网络中的节点
- 启动节点
- 通过partyA向patyB发行债券节点
- 查看三个节点的资料库,看能不能看到这个state
2.1 部署&测试节点
windows下部署&测试节点的的命令如下:
gradle.bat deployNodes
build\nodes\runnodes.bat
Linux/macOS下部署&测试节点的命令如下:
./gradlew deployNodes
build/nodes/runnodes
请耐心等待,我建立四个节点大概花了58s
如果执行第二条命令的时候,出现了报错,很可能是未安装xterm,请在ubuntu18.04下执行:
sudo apt install xterm
2.2 发布债券
在PartyA下执行如下命令向PartyB发布数量为99的债券:
flow start IOUIssueFlow owner: PartyB, amount: 99
这里出现了这样的报错:
需要在IOUState.class中补上一个注释:
@BelongsToContract(IOUContract.class)
public class IOUState implements ContractState {
2.3 查看资料库
在PartyA或者PartyB下执行:
run vaultQuery contractStateType: bootcamp.IOUState
他们一定会拥有IOUState,但是,PartyC中没有任何有关于IOUState的细节,这就是“仅需要知道”(实话实话,我觉得这是一个很大的缺陷)
然后notrary中保存的只有哈希,它也不会知道交易的具体细节,只是为了保证双花。
至此,bootcamp完全结束,撒花结束~
3、总结
Corda是一个私有分布式账本系统:
- 节点具有身份证明
- 提供分布式的数据存储模型
- 提供隐私的p2p通信,因为所有的通信都会被加密
4、联络方式
- 技术文档
- docs.corda.net
- docs.cncorda.com(中文)
- 社区论坛:
- Stack Overflow: stackoverflow.com/questions/tagged/corda
- Slack交流群:
- cordaledger:slack.corda.net
至此,corda撒花完结!!!~~~~~