• 区块链开发之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
    odes
    unnodes.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撒花完结!!!~~~~~

  • 相关阅读:
    《Effective java》读书笔记
    Ansible playbook
    Ansible模块
    Ansible介绍与安装
    HDFS完全分布式集群搭建
    screen配置窗口显示
    K8s下部署Istio
    使用RKE快速部署k8s集群
    Oracle批量创建同义词
    k8s基本概念
  • 原文地址:https://www.cnblogs.com/huangming-zzz/p/11521479.html
Copyright © 2020-2023  润新知