zoukankan      html  css  js  c++  java
  • docker 搭建以太坊私有链搭建

    最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建

    于是我找到了官方的地址 https://github.com/ethereum/go-ethereum

    发现官方是支持docker 的

    于是我创建了如下目录

    ➜  block-chain pwd
    /Users/jackluo/Works/block-chain
    ➜  block-chain ls
    ethereum          start-ethereum.sh

    start-ethereum.sh的内容如下

    docker stop ethereum-node
    docker rm ethereum-node
    
    docker run -d --name ethereum-node -v /Users/jackluo/Works/block-chain/ethereum:/root 
               -p 8545:8545 -p 30303:30303 
               ethereum/client-go
    docker exec -it ethereum-node /bin/sh

    我们把当前的 ethereum目录,挂到了docker 的/root下

    我们接下来创建私有链 

    ➜ block-chain cd ethereum
    ➜ ethereum ls
    genesis.json privatechain

    我们根据官方的文档 创建 genesis.json文件里面写入

    {
      "config": {
            "chainId": 0,
            "homesteadBlock": 0,
            "eip155Block": 0,
            "eip158Block": 0
        },
      "alloc"      : {},
      "coinbase"   : "0x0000000000000000000000000000000000000000",
      "difficulty" : "0x20000",
      "extraData"  : "",
      "gasLimit"   : "0x2fefd8",
      "nonce"      : "0x0000000000000042",
      "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
      "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
      "timestamp"  : "0x00"
    }

    参数的话,具体看文件档

    接下来,我们启动以太坊的docker 容器

    ➜  block-chain ./start-ethereum.sh
    Error response from daemon: No such container: ethereum-node
    Error response from daemon: No such container: ethereum-node
    d421da09e63900d1cc9481529ab2a5868515fb821520b548f10e0bd2f3608c0c
    / #
    / #
    / # ls
    bin    dev    etc    home   lib    media  mnt    proc   root   run    sbin   srv    sys    tmp    usr    var
    / # cd /root/
    ~ # ls
    genesis.json  privatechain
    ~ # cd privatechain/
    ~/privatechain # ls
    data0         genesis.json
    ~/privatechain # pwd
    /root/privatechain
    ~/privatechain #

    接下来初始化他

    ~/privatechain # geth --datadir data0 init genesis.json
    INFO [03-06|05:21:40] Maximum peer count                       ETH=25 LES=0 total=25
    INFO [03-06|05:21:40] Allocated cache and file handles         database=/root/privatechain/data0/geth/chaindata cache=16 handles=16
    INFO [03-06|05:21:40] Persisted trie from memory database      nodes=0 size=0.00B time=41.5µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
    INFO [03-06|05:21:40] Successfully wrote genesis state         database=chaindata                               hash=ed1fb6…1760ca
    INFO [03-06|05:21:40] Allocated cache and file handles         database=/root/privatechain/data0/geth/lightchaindata cache=16 handles=16
    INFO [03-06|05:21:40] Persisted trie from memory database      nodes=0 size=0.00B time=10.5µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
    INFO [03-06|05:21:40] Successfully wrote genesis state         database=lightchaindata                               hash=ed1fb6…1760ca

    接下来,启动私有链

    ~/privatechain # geth --identity "TestNode" --rpc --rpcport "8545" --datadir data0 --port "3033" --nodiscover console
    INFO [03-06|05:26:44] Maximum peer count                       ETH=25 LES=0 total=25
    INFO [03-06|05:26:44] Starting peer-to-peer node               instance=Geth/TestNode/v1.8.2-unstable-0b814d32/linux-amd64/go1.9.4
    INFO [03-06|05:26:44] Allocated cache and file handles         database=/root/privatechain/data0/geth/chaindata cache=768 handles=1024
    INFO [03-06|05:26:44] Initialised chain configuration          config="{ChainID: 1024 Homestead: 0 DAO: <nil> DAOSupport: false EIP150: <nil> EIP155: 0 EIP158: 0 Byzantium: <nil> Constantinople: <nil> Engine: unknown}"
    INFO [03-06|05:26:44] Disk storage enabled for ethash caches   dir=/root/privatechain/data0/geth/ethash count=3
    INFO [03-06|05:26:44] Disk storage enabled for ethash DAGs     dir=/root/.ethash                        count=2
    INFO [03-06|05:26:44] Initialising Ethereum protocol           versions="[63 62]" network=1
    INFO [03-06|05:26:44] Loaded most recent local header          number=0 hash=ed1fb6…1760ca td=1024
    INFO [03-06|05:26:44] Loaded most recent local full block      number=0 hash=ed1fb6…1760ca td=1024
    INFO [03-06|05:26:44] Loaded most recent local fast block      number=0 hash=ed1fb6…1760ca td=1024
    INFO [03-06|05:26:44] Loaded local transaction journal         transactions=0 dropped=0
    INFO [03-06|05:26:44] Regenerated local transaction journal    transactions=0 accounts=0
    INFO [03-06|05:26:44] Starting P2P networking
    INFO [03-06|05:26:44] RLPx listener up                         self="enode://3264cbba213bc88c407c55576f148d5c2b6afa5013a7c204085e01c5e4dc24a9235bd9abf86681d0d36349fa8031367c31adb534a469f4ea1e156047bf96befb@[::]:3033?discport=0"
    INFO [03-06|05:26:44] IPC endpoint opened                      url=/root/privatechain/data0/geth.ipc
    INFO [03-06|05:26:44] HTTP endpoint opened                     url=http://127.0.0.1:8545             cors= vhosts=localhost
    Welcome to the Geth JavaScript console!
    
    instance: Geth/TestNode/v1.8.2-unstable-0b814d32/linux-amd64/go1.9.4
    INFO [03-06|05:26:44] Etherbase automatically configured       address=0xFc2D11A7A4408b77d95202c0A455cfd44F2A4cFD
    coinbase: 0xfc2d11a7a4408b77d95202c0a455cfd44f2a4cfd
    at block: 0 (Thu, 01 Jan 1970 00:00:00 UTC)
     datadir: /root/privatechain/data0
     modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

    基本上已经启起来了

    其它,参考了下 https://g2ex.github.io/2017/09/12/ethereum-guidance/ 这个

  • 相关阅读:
    开源框架.netCore DncZeus学习(五)下拉树的实现
    开源框架.netCore DncZeus学习(四)项目升级
    github下载更新代码到本地
    AndroidStudio替换空行
    Ext.net获取选中行数据
    OZCode
    禁止密码显示框
    Android layout_weight理解
    微信页面关于点击按钮关注公众号放到链接里无关注按钮
    进入页面就触发了popstate事件。
  • 原文地址:https://www.cnblogs.com/jackluo/p/8513880.html
Copyright © 2011-2022 走看看