以太坊开发环境搭建

以太坊开发环境搭建_第1张图片

以太坊开发环境搭建_第2张图片

Git安装

  • 添加源
  • sudo apt-get update
  • sudo apt-get install git

安装geth

1.通过源码安装

  • Git下载源码
  • 进入源码目录
  • Make geth或者make all

2.以太坊搭建私链

  • 新建一个私链目录
  • 在目录中新建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"
}
  • 通过genesis.json生成创世块:geth --datadir data init genesis.json
  • 启动节点:geth –datadir data console
  1. 节点启动之后,会在data目录下生成geth和keystore目录
  2. Geth:存储区块链数据等
  3. Keystore:存储私钥文件

创世区块配置文件参数详解

  • ChainId:  独立的区块链网络ID,在连接到其它节点时可以用到,公网的ID是固定的1。不同ID的网络节点无法相互连接。
  • HomesteadBlock : 版本号,固定值为0,表示当前正在使用homestead版本
  • Alloc:预置账号以及账号的以太币数量,私链用不上
  • Coinbase:  矿工账号,可以随便填,因为以太中会默认把账号列表中的第一个账号当成挖矿账号
  • Difficulty:  当前区块的挖矿难度,可以动态的进行调节
  • extraData:附加信息,随便填
  • gasLimit:gas上限
  • nonce:随机数,用于挖矿
  • mixHash:与nonce结合用于配合挖矿
  • parentHash:前区块哈希
  • timeStamp:创世区块时间戳

geth启动参数详解

  • --datadir :区块链数据库存放位置 
  • --rpc :启动RPC通信,可以进行智能合约部署和调试
  • --rpcaddr=0.0.0.0 :指定HTTP-RPC监听地址,默认localhost
  • --rpcport 8545 : 指定HTTP-RPC监听端口,默认8545
  • --rpccorsdomain "*"
  • --rpcapi :允许连接的RPC客户端
  1. eth:区块链相关的操作
  2. net:网络相关的
  3. personal:
  4. admin:管理节点
  5. ssh:开启服务
  6. txpool:交易池
  7. debug:调试
  8. miner:启动挖矿停止挖矿方法
  9. web3:可以包含所有的方法,web3放到最后面可以包含前面的所有功能,
  • --nodiscover :关闭自动连接
  • --maxpeers 30 :允许的最大连接数,默认25个
  • --networkid 1981 :设置当前区块链中网络ID,为了区分不同的网络
  • --port 30303:启动私链之后的端口
  • --mine :开户挖矿,默认CPU挖矿
  • --minerthreads 1 :挖矿的CPU线程数,默认是4
  • --etherbase :矿工账号
  • Console : 启动命令行,可以在geth中执行命令。

3.基本操作

  • 查看账户:eth.accounts
  • 新建账户:
  1. 方法一:personal.newAccount(“123456”)
  2. 方法二:personal.newAccount(),在enter之后再输入密码
  • 查看余额eth.getBalance(account)
  • 挖矿miner
  1. 设置挖矿地址:miner.setEtherbase(account)
  2. 查看挖矿地址:eth.coinbase
  3. 挖矿:miner.start()
  4. 停止:miner.stop()
  • 针对区块的操作eth
  1. 查看当前区块总数:eth.blockNumber()
  2. 查看最新区块的信息:eth.getBlock(‘latest’)
  3. 查看指定区块的信息:eth.getBlock(‘number’)
  • 远程节点管理admin
  1. 查看节点信息:admin.nodeInfo
  2. 获取节点名称:admin.nodeInfo.enode
  3. 添加其它节点:admin.addPeer(node_name)
  4. 查看已连接的远程节点:amin.peers

你可能感兴趣的:(区块链)