neo blockchain book
  • NEOHOPE's Blockchain Book
  • 概述
    • 本书内容
    • 读者定位
    • 本书约定
    • 项目对比
    • 名词释义
  • 基本原理
    • 区块链
    • 智能合约
    • 交易所
    • 系统架构
  • 基础算法
    • 默克尔树
    • Bloom过滤器
    • 公钥私钥及椭圆曲线
  • 共识算法
    • 分布式系统
    • Paxos与Raft算法
    • 拜占庭容错算法
  • Bitcoin
    • 整体架构
    • 状态转换
    • 区块确认
    • 分叉处理
    • P2P
    • 脚本
    • 钱包
    • 使用
    • 编译(Ubuntu)
    • 私链搭建(Linux)
    • 私链搭建(Docker)
  • Ethereum
    • 整体架构
    • 状态转换
    • 区块确认
    • 使用
    • Remix IDE环境搭建(Ubuntu16)
    • 智能合约编写01
    • 智能合约编写02
    • 智能合约编写03
    • 智能合约编写04
    • 编译(MacOS)
    • 私链搭建
  • EOS
    • 整体架构
    • 使用
    • 智能合约使用(单机单节点单钱包)
    • 智能合约使用(单机单节点多钱包)
    • 编写简单的智能合约
    • 编写有数据存储的智能合约
    • 编译(Linux)
    • 私链搭建(单机多节点)
    • 私链搭建(多机多节点)
  • Fabric
    • 整体架构
    • 身份管理
    • 共识达成
    • 使用
    • 智能合约介绍
    • 智能合约使用01
    • 智能合约使用02
    • 编译(MacOS)
    • 私链搭建(Ubuntu)
    • 在私链中添加一个机构
  • Cosmos
    • 整体架构
    • Zone与Hub
    • 使用
  • IPFS
    • 整体架构
    • 使用
    • 编译(MacOS)
    • 私链搭建
  • 然后呢?
由 GitBook 提供支持
在本页
  • 最终创建三个虚拟机,三个生产节点的私链
  • 开启服务
  • 创建钱包与账号
  • 加载智能合约,发币并转账
  • 查询结果
  1. EOS

私链搭建(多机多节点)

最终创建三个虚拟机,三个生产节点的私链

各节点之间通过区块服务nodeos联通,区块服务是对公网的

钱包服务keosd传输密钥时使用明文,所以只对本机提供服务

cleos通过四个参数,设置连接哪个keosd和哪个nodeos

cleos也可以直接使用nodeos提供的本地钱包服务操作钱包,但nodeos要加载钱包插件

开启服务

#BC01
./nodeos --http-server-address 0.0.0.0:8888 --p2p-listen-endpoint 0.0.0.0:9876 --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --plugin eosio::wallet_api_plugin  --plugin eosio::account_history_api_plugin 1>nodeos.log 2>&1 &
./keosd --http-server-address 127.0.0.1:8899 1>keosd.log 2>&1 & 

#BC02,--p2p-peer-address指向BC01
./nodeos --http-server-address 0.0.0.0:8888 --p2p-listen-endpoint 0.0.0.0:9876 --p2p-peer-address 172.16.172.81:9876 --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --plugin eosio::wallet_api_plugin  --plugin eosio::account_history_api_plugin 1>nodeos.log 2>&1 &
./keosd --http-server-address 127.0.0.1:8899 1>keosd.log 2>&1 & 

#BC03,--p2p-peer-address指向BC01
./nodeos --http-server-address 0.0.0.0:8888 --p2p-listen-endpoint 0.0.0.0:9876 --p2p-peer-address 172.16.172.81:9876 --enable-stale-production --producer-name eosio --plugin eosio::chain_api_plugin --plugin eosio::net_api_plugin --plugin eosio::wallet_api_plugin  --plugin eosio::account_history_api_plugin 1>nodeos.log 2>&1 &
./keosd --http-server-address 127.0.0.1:8899 1>keosd.log 2>&1 & 

创建钱包与账号

#BC01
#创建钱包、生成并导入密钥,创建账号
./cleos --wallet-port 8899  wallet create
"PW5KDZZWxtGroTQG8d1v1fiRm2FvNfE8QZzvnfZLEV8BGRPw8Tx8X"

./cleos create key
Private key: 5KPRMHBNnXLybgHFhFb7wVF9hLkRKu4aLb7s7xNaZVND8GtunT8
Public key: EOS5wfaugnegAjXPSTgaquJL51taDmqftbGFcWmvNoDKMsYzrnydX
./cleos --wallet-port 8899 wallet import -n default 5KPRMHBNnXLybgHFhFb7wVF9hLkRKu4aLb7s7xNaZVND8GtunT8

./cleos --wallet-port 8899 create account eosio token1 EOS5wfaugnegAjXPSTgaquJL51taDmqftbGFcWmvNoDKMsYzrnydX EOS5wfaugnegAjXPSTgaquJL51taDmqftbGFcWmvNoDKMsYzrnydX
./cleos --wallet-port 8899 create account eosio patient1 EOS5wfaugnegAjXPSTgaquJL51taDmqftbGFcWmvNoDKMsYzrnydX EOS5wfaugnegAjXPSTgaquJL51taDmqftbGFcWmvNoDKMsYzrnydX

#BC02
#创建钱包、生成并导入密钥,创建账号
./cleos --wallet-port 8899  wallet create
"PW5JJv6uxu8FcxT3zRbzVuxDquKFeeGQJj6f2kguXqfApSx9Lyg5k"

./cleos create key
Private key: 5K2G75aBEqBWRZdJZcFcb7gCjezcxfC8hFMUk4XVPmGj8JmqSCA
Public key: EOS5baefwj8ALkjjo9fZsjtDagYecd3VYVjwaMuVN55e44ViJQXve
./cleos --wallet-port 8899 wallet import -n default 5K2G75aBEqBWRZdJZcFcb7gCjezcxfC8hFMUk4XVPmGj8JmqSCA

./cleos --wallet-port 8899 create account eosio patient2 EOS5baefwj8ALkjjo9fZsjtDagYecd3VYVjwaMuVN55e44ViJQXve EOS5baefwj8ALkjjo9fZsjtDagYecd3VYVjwaMuVN55e44ViJQXve

#BC03
#创建钱包、生成并导入密钥,创建账号
./cleos --wallet-port 8899  wallet create
"PW5JWH5MHmrZhAgbmmmMNEHj4hdG2HxueCX8amKaNxX5o1kycLkmf"

./cleos create key
Private key: 5JM4jmDJoBdjTksz5KcBkCqrZxB3hi11GCPohbMg67r2pZu1P1E
Public key: EOS5MwWYV4dDVyrY3gpiZRfPpvX2ADWA2C8n9TT4D1Qho7BHHSLKh
./cleos --wallet-port 8899 wallet import -n default 5JM4jmDJoBdjTksz5KcBkCqrZxB3hi11GCPohbMg67r2pZu1P1E

./cleos --wallet-port 8899 create account eosio patient3 EOS5MwWYV4dDVyrY3gpiZRfPpvX2ADWA2C8n9TT4D1Qho7BHHSLKh EOS5MwWYV4dDVyrY3gpiZRfPpvX2ADWA2C8n9TT4D1Qho7BHHSLKh

加载智能合约,发币并转账

#BC01
./cleos --wallet-port 8899 set contract token1 ../contracts/eosio.token -p token1
./cleos --wallet-port 8899 push action token1 create '{"issuer":"token1", "maximum_supply":"10000.00 CT", "can_freeze":0, "can_recall":0, "can_whitelist":0}' -p token1
./cleos --wallet-port 8899 push action token1 issue '["patient1", "100.00 CT", "memo"]' -p token1
./cleos --wallet-port 8899 push action token1 transfer '["patient1", "patient2", "5.00 CT", "Just a test" ]' -p patient1

#BC02
./cleos --wallet-port 8899 push action token1 transfer '["patient2", "patient3", "2.00 CT", "Just a test" ]' -p patient2

#BC03
./cleos --wallet-port 8899 push action token1 transfer '["patient3", "patient1", "1.00 CT", "Just a test" ]' -p patient3

查询结果

#任意节点
./cleos --wallet-port 8899 get table token1 token1 accounts
{
  "rows": [{
      "balance": "0.00 CT",
      "frozen": 0,
      "whitelist": 1
    }
  ],
  "more": false
}

./cleos --wallet-port 8899 get table token1 patient1 accounts
{
  "rows": [{
      "balance": "96.00 CT",
      "frozen": 0,
      "whitelist": 1
    }
  ],
  "more": false
}


./cleos --wallet-port 8899 get table token1 patient2 accounts
{
  "rows": [{
      "balance": "3.00 CT",
      "frozen": 0,
      "whitelist": 1
    }
  ],
  "more": false
}


./cleos --wallet-port 8899 get table token1 patient3 accounts
{
  "rows": [{
      "balance": "1.00 CT",
      "frozen": 0,
      "whitelist": 1
    }
  ],
  "more": false
}
上一页私链搭建(单机多节点)下一页Fabric

最后更新于7年前