基于星云链的智能合约与Dapp(二)——运行星云链

论坛 期权论坛 区块链     
古川不爱笑   2018-11-20 23:30   3588   0
            上一篇文章讲了搭建星云私链的基本环境,接着我们来讲讲如何配置和运行星云链。这里讲的只是一些基础的介绍,为智能合约和Dapp做准备,后期我们分析星云链源码的时候再详细讲解。
创世区块在启动星云链之前,我们必须定义创世区块的配置文件。
创世区块配置我们可以在源码根目录
  1. conf/default/genesis.conf
复制代码
下,找到一个完整的创世区块配置实例。
  1. meta {  # 每条链的唯一标识  # 每个区块和交易只会属于一条唯一的链,保证安全性  # 对于主网,chain_id=1;对于测试网,chain_id=1001  chain_id: 100}consensus {  # 在贡献度证明(PoD)被充分验证前,星云链采用DPoS共识算法  # DPoS共识中,21个人组成一个朝代  # 每隔一段时间都会切换朝代,每个朝代内,21个矿工轮流出块  # 由于DPoS只是过渡方案,所以暂时不开放给公众挖矿,即当前版本朝代不会发生变更  dpos {    # 初始朝代,包含21个初始矿工地址    dynasty: [      [ miner address ],      ...    ]  }}# 预分配的代币token_distribution [  {    address: [ allocation address ]    value: [ amount of allocation tokens ]  },  ...]
复制代码
配置文件我们在启动一个星云节点前,需要定义好该节点的配置文件。
星云节点配置文件
  1. # 网络配置network {  # 对于全网第一个节点,不需要配置seed  # 否则,其他节点启动时需要配置seed,seed节点将会把网络中其他节点的路由信息同步给刚启动的节点  # 可以配置多个seed, ["...", "..."]  seed: ["/ip4/127.0.0.1/tcp/8680/ipfs/QmP7HDFcYmJL12Ez4ZNVCKjKedfE7f48f1LAkUc3Whz4jP"]  # 节点监听网络消息端口,可以配置多个  listen: ["0.0.0.0:8680"]  # 网络私钥,用于确认身份节点  # private_key: "conf/network/id_ed25519"}# 链配置chain {  # 链的唯一标识  chain_id: 100  # 数据存储地址  datadir: "data.db"  # 账户keystore文件存储地址  keydir: "keydir"  # 创世区块配置  genesis: "conf/default/genesis.conf"  # 签名算法,请勿修改  signature_ciphers: ["ECC_SECP256K1"]  # 矿工地址,矿工的keystore文件需要放置在配置的keydir下  miner: "n1FF1nz6tarkDVwWQkMnnwFPuPKUaQTdptE"  # Coinbase地址,该地址用于接收矿工的挖矿奖励,可以和矿工地址一致  # 该地址的keystore无需暴露,不用放置在配置的keydir下  coinbase: "n1XkoVVjswb5Gek3rRufqjKNpwrDdsnQ7Hq"  # 矿工地址的密码  passphrase: "passphrase"}# API配置rpc {    # GRPC服务端口    rpc_listen: ["127.0.0.1:8684"]    # HTTP服务端口    http_listen: ["127.0.0.1:8685"]    # 开放的API模块    # API模块包含所有和用户私钥无关的接口    # Admin模块包含所有和用户私钥相关的接口,需要慎重考虑该模块的访问权限    http_module: ["api", "admin"]}# 日志配置app {    # 日志级别: 支持[debug, info, warn, error, fatal]    log_level: "info"    # 日志存放位置    log_file: "logs"    # 是否打开crash report服务    enable_crash_report: false}# 监控服务配置stats {    # 是否打开监控服务    enable_metrics: false    # 监控服务将数据上传到Influxdb    # 配置Influxdb的访问信息    influxdb: {        host: "http://localhost:8086"        db: "nebulas"        user: "admin"        password: "admin"    }}
复制代码
提示:我们可以通过修改监听端口号、数据存储地址、矿工地址、Coinbase地址和日志存放地址来配置更多的旷工
启动星云链
  1. cd $GOPATH/src/github.com/nebulasio/go-nebulas./neb -c conf/default/config.conf
复制代码
启动成功的话,我们将会看到如下信息,


启动成功默认情况下,使用配置文件
  1. conf/default/config.conf
复制代码
启动的节点并不是旷工节点。
接下来,启动我们的第一个旷工节点,它的seed节点即我们刚刚启动的第一个节点。
  1. cd $GOPATH/src/github.com/nebulasio/go-nebulas./neb -c conf/example/miner.conf
复制代码
节点启动后,我们会看到如下信息,表示当前节点正在找种子节点同步。


同步中
等待一会儿,我们将看到如下信息,表示当前节点已经连上了seed节点完成了同步
同步完成在等待几分钟,我们会看到如下信息,表示当前矿工节点挖出了第一个区块。
挖矿成功
提示: 目前的DPoS共识算法,会有21个节点轮流出块。由于我们只启动了21个矿工节点中的一个矿工节点,所以每隔15*21s才出一个块。你可以启动更多的矿工节点,填补空缺。但是需要注意,多个节点间的端口号不要相互冲突。
下一章在星云链上发送交易         
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:50
帖子:9
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP