区块链开发之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、具体实施

要做的事情:

  1. 首先建立测试网络中的节点
  2. 启动节点
  3. 通过partyA向patyB发行债券节点
  4. 查看三个节点的资料库,看能不能看到这个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

这里出现了这样的报错:

2019-09-15 11-14-31 的屏幕截图

需要在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撒花完结!!!~~~~~

posted @ 2019-09-15 11:10  明卿册  阅读(682)  评论(0编辑  收藏  举报