[blockchain-038] EOS多节点网络从安装到运行[资料收集]

1.EOS4.0 局域网测试网络搭建教程
https://eosfans.io/topics/490


局域网自己搭建一个测试网络
节点1  192.168.195.144
节点2  192.168.195.176
节点3  192.168.195.191


三个节点的genesis.json是一样的,内容如下:
-----------
{
  "initial_timestamp": "2018-03-02T12:00:00.000",
  "initial_key": "EOS8HF8XSGjfSvG5zfPgXFcUjFJh56ifWzYneWMEQSCkXgSdPJ51R",
  "initial_configuration": {
    "max_block_net_usage": 1048576,
    "target_block_net_usage_pct": 1000,
    "max_transaction_net_usage": 524288,
    "base_per_transaction_net_usage": 12,
    "net_usage_leeway": 500,
    "context_free_discount_net_usage_num": 20,
    "context_free_discount_net_usage_den": 100,
    "max_block_cpu_usage": 100000,
    "target_block_cpu_usage_pct": 500,
    "max_transaction_cpu_usage": 100000,
    "base_per_transaction_cpu_usage": 512,
    "base_per_action_cpu_usage": 1024,
    "base_setcode_cpu_usage": 2097152,
    "per_signature_cpu_usage": 102400,
    "cpu_usage_leeway": 2048,
    "context_free_discount_cpu_usage_num": 20,
    "context_free_discount_cpu_usage_den": 100,
    "max_transaction_lifetime": 3600,
    "deferred_trx_expiration_window": 600,
    "max_transaction_delay": 3888000,
    "max_inline_action_size": 4096,
    "max_inline_action_depth": 4,
    "max_authority_depth": 6,
    "max_generated_transaction_count": 16
  },
  "initial_chain_id": "0000000000000000000000000000000000000000000000000000000000000000"
}
-----------


192.168.195.144的config.ini配置如下
-----------
genesis-json = "genesis.json"
block-log-dir = "blocks"
shared-memory-size-mb = 1024
http-server-address = 127.0.0.1:8888
access-control-allow-credentials = false
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = 192.168.195.144:9876  #注意此处
agent-name = "EOS Test Agent"
allowed-connection = any
max-clients = 25
connection-cleanup-period = 30
network-version-match = 0
sync-fetch-span = 100
max-implicit-request = 1500
enable-stale-production = true  #注意此处
max-transaction-time = 30
required-participation = 33
producer-name = eosio #注意此处
private-key = ["EOS8HF8XSGjfSvG5zfPgXFcUjFJh56ifWzYneWMEQSCkXgSdPJ51R","5JC4FQVzAZuxWmaAfbW1RWsNDEpjjF5enfn9WBHkYTupFJQaBWt"]  #注意此处
txn-reference-block-lag = 0
wallet-dir = "."
unlock-timeout = 900
plugin = eosio::chain_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::producer_plugin
plugin = eosio::http_plugin
-----------




192.168.195.176
-----------
genesis-json = "genesis.json"
block-log-dir = "blocks"
shared-memory-size-mb = 1024
http-server-address = 127.0.0.1:8888
access-control-allow-credentials = false
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = 192.168.195.176:9876
p2p-peer-address = 192.168.195.144:9876  #注意此处
p2p-peer-address = 192.168.195.191:9876  #注意此处
agent-name = "EOS Test Agent"
allowed-connection = any
max-clients = 25
connection-cleanup-period = 30
network-version-match = 0
sync-fetch-span = 100
max-implicit-request = 1500
enable-stale-production = false #注意此处
max-transaction-time = 30
required-participation = 33
producer-name = kgtest  #注意此处
private-key = ["",""]  #注意此处
txn-reference-block-lag = 0
wallet-dir = "."
unlock-timeout = 900
plugin = eosio::chain_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::producer_plugin
plugin = eosio::http_plugin
-----------








192.168.195.191
-----------
genesis-json = "genesis.json"
block-log-dir = "blocks"
shared-memory-size-mb = 1024
http-server-address = 127.0.0.1:8888
access-control-allow-credentials = false
p2p-listen-endpoint = 0.0.0.0:9876
p2p-server-address = 192.168.195.176:9876  #注意此处
p2p-peer-address = 192.168.195.144:9876  #注意此处
p2p-peer-address = 192.168.195.176:9876  #注意此处
agent-name = "EOS Test Agent"
allowed-connection = any
max-clients = 25
connection-cleanup-period = 30
network-version-match = 0
sync-fetch-span = 100
max-implicit-request = 1500
enable-stale-production = false  #注意此处
max-transaction-time = 30
required-participation = 33
producer-name = kgtest  #注意此处
private-key = ["",""]  #注意此处
txn-reference-block-lag = 0
wallet-dir = "."
unlock-timeout = 900
plugin = eosio::chain_api_plugin
plugin = eosio::chain_plugin
plugin = eosio::producer_plugin
plugin = eosio::http_plugin
-----------


启动网络过程
1.首先启动节点1,节点1会出块
2.同时启动节点2和节点3,这两个节点会同步节点1的区块
3.创建钱包
  cleos wallet create -n kgbp
4. 打开并解锁钱包
  cleos wallet open -n kgbp
  cleos wallet uplock -n kgbp
5. 导入eosio账户到钱包
  cleos wallet import -n kgbp 5JC4FQVzAZuxWmaAfbW1RWsNDEpjjF5enfn9WBHkYTupFJQaBWt
5. 创建并发布toekn
  5.1 创建发布token的帐号eosio.token
    cleos create account eosio eosio.token EOS721PhsVCdLXatGMxu2kNBMPtQZzV8QU6Wu1qC9YFBZegyiP8if EOS721PhsVCdLXatGMxu2kNBMPtQZzV8QU6Wu1qC9YFBZegyiP8if
  5.2 在钱包里导入EOS721PhsVCdLXatGMxu2kNBMPtQZzV8QU6Wu1qC9YFBZegyiP8if的私钥
    cleos wallet import -n kgbp xxxxxxxx
  5.3 发布eosio.token合约
    cleos set contract eosio.token ./contracts/eosio.token/
  5.4 创建和发布代币
    cleos  push action eosio.token create '["eosio","1000000000.0000 EOS",0,0,0]' -p eosio.token
    cleos  push action eosio.token issue '["eosio","1000000000.0000 EOS","issue"]' -p eosio
  5.5 检查发布代币情况
    cleos get currency balance eosio.token eosio
  5.6 部署eosio.system合约
    cleos set contract eosio ./contracts/eosio.system/
    如果部署失败,可以多尝试几次。部署了eosio.system合约之后,cleos create account这个命令就不能创建账户了,暂时还不清楚是什么原因。让后可以用下面这个命令创建账户:
    cleos system newaccount eosio kgtest EOS5VPJHpT6aUfqVyW2XNNc2JgwtAa15nnQXMbzyvSQQHr2NYqCDz EOS5VPJHpT6aUfqVyW2XNNc2JgwtAa15nnQXMbzyvSQQHr2NYqCDz  --stake-net '50.00 EOS' --stake-cpu '50.00 EOS'
    cleos system newaccount eosio kgtestt EOS79bDtiWLaSkWaHi59u5wdWL4XKfLgwBCvWa1FTvCT8bDiYXjQY EOS79bDtiWLaSkWaHi59u5wdWL4XKfLgwBCvWa1FTvCT8bDiYXjQY  --stake-net '50.00 EOS' --stake-cpu '50.00 EOS'
    cleos system newaccount eosio kgtesttt EOS5WhVn5sKfTudx7THKLMSCH9BWchfBMdM1Q6aLU86tCvhUsjJZ6 EOS5WhVn5sKfTudx7THKLMSCH9BWchfBMdM1Q6aLU86tCvhUsjJZ6  --stake-net '50.00 EOS' --stake-cpu '50.00 EOS'
    创建完成之后导入EOS5VPJHpT6aUfqVyW2XNNc2JgwtAa15nnQXMbzyvSQQHr2NYqCDz的私钥
  5.7 将节点2注册成bp
    cleos  system regproducer kgtest EOS5VPJHpT6aUfqVyW2XNNc2JgwtAa15nnQXMbzyvSQQHr2NYqCDz http://http-server-address:8888
  5.8 给创建的账户转账
    cleos  push action eosio.token transfer '["eosio", "kgtest","100000000.0000 EOS","vote"]' -p eosio
    cleos  push action eosio.token transfer '["eosio", "kgtestt","100000000.0000 EOS","vote"]' -p eosio
    cleos  push action eosio.token transfer '["eosio", "kgtesttt","100000000.0000 EOS","vote"]' -p eosio
  5.9 锁定代币
    cleos system delegatebw kgtest kgtest '25000000.0000 EOS' '25000000.0000 EOS' --transfer
    cleos system delegatebw kgtestt kgtestt '25000000.0000 EOS' '25000000.0000 EOS' --transfer
    cleos system delegatebw kgtesttt kgtesttt '25000000.0000 EOS' '25000000.0000 EOS' --transfer
  5.10 给出块节点投票
    cleos system voteproducer prods kgtest kgtest
    cleos system voteproducer prods kgtestt kgtest
    cleos system voteproducer prods kgtesttt kgtest
  5.11 投票之后,就观察到节点2出块了。也就是超级节点运行了。按照这个流程,可以将其他节点都一个一个运行起来。


有些参数还不是太了解。




××××××××××××××××××××××××××××××××××××××××××××××××××××××
1. EOSIO 4.0 测试网络启动教程
  https://eosfans.io/topics/454


2. EOS 安装本地环境,并实现发币转账等功能
  https://eosfans.io/topics/333


3. EOS3.0 测试网络组建-EOS 中文社区特辑
  https://eosfans.io/topics/265


4. Tutorial Bios Boot Sequence
  https://github.com/EOSIO/eos/wiki/Tutorial-Bios-Boot-Sequence

猜你喜欢

转载自blog.csdn.net/u011539200/article/details/80549872