linux+geth+命令,Linux下Geth的使用

演示环境:

Linux version 3.10.0-693.el7.x86_64 (cat /proc/version-查看系统版本)

安装geth客户端(选择从源码编译的方式):

1.安装go语言开发环境

命令:

下载Go 1.9版本:curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz

环境配置:移动压缩包到指定的目录,如:mv go1.9.linux-amd64.tar.gz /home/app

解压至当前目录:tar -zxvf go1.9.linux-amd64.tar.gz

检查go环境是否安装成功:

创建一个工作目录(存放go语言文件):mkdir /home/work

配置GOPATH环境变量:vim /etc/profile

go环境配置:

export GOROOT=/home/app/go

export GOBIN=$GOROOT/bin

export PATH=$PATH:$GOBIN

export GOPATH=/home/work

使配置文件生效:source /etc/profile

查看go语言版本:go version

进入工作目录:go run hello.go

hello.go 源码

package main

import "fmt"

func main() {

fmt.Println("Hello,主人")

}

2.下载和编译Geth

安装c编译器:yum -y install gcc gcc-c++ kernel-devel

下载go-ethereum源码版本:git clone https://github.com/ethereum/go-ethereum

编译安装Geth:

cd go-ethereum/

make geth

查看Geth版本:build/bin/geth version

3.搭建测试链:

新建文件genesis.json

{

"config":{

"chainId": 22,

"homesteadBlock": 0,

"eip155Block": 0,

"eip158Block": 0

},

"coinbase" : "0x0000000000000000000000000000000000000000",

"difficulty" : "0x400",

"extraData" : "",

"gasLimit" : "0x2fefd8",

"nonce" : "0x0000000000000038",

"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",

"timestamp" : "0x00",

"alloc" : {}

}

各个key的含义:百度/eth白皮书,这个可以参考:http://blog..net/jeffrey__zhou/article/details/63695639

初始化区块链,生成创世区块和初始状态:build/bin/geth --datadir /home/app/eth/path/to/datadir init /home/app/eth/genesis.json

启动节点:build/bin/geth --identity “TestNode” --rpc --rpcport “8545” --datadir /home/app/eth/path/to/datadir --port “30303”–nodiscover console

进入console命令行界面:

创建账户 personal.newAccount()

myAddress=“你刚刚创建的地址”

利用account的索引获取账户余额:eth.getBalance(eth.accounts[1])

使用eth作为单位展示余额:web3.fromWei(eth.getBalance(eth.accounts[1]),‘ether’)

查看账户余额单位wei(1eth=10的18次方wei):eth.getBalance(myAddress)

启动挖矿:miner.start()

停止挖矿:miner.stop()

控制挖一个块就停止挖矿:miner.start(1);admin.sleepBlocks(1);miner.stop();

console命令参考:http://blog..net/u013096666/article/details/72639906

http://blog..net/CHENYUFENG1991/article/details/53458175?locationNum=7&fps=1

4.部署智能合约

安装solc编译器(cent os 上尚未安装成功),使用的在线编译。

在线编译网址:https://ethereum.github.io/browser-solidity/

编译成功后,获取abi和code(只能合约的二进制码)

解锁账户:personal.unlockAccount(eth.accounts[0])

发送部署合约的交易:

myContract = eth.contract(abi)

contract = myContract.new({from:eth.accounts[0], data : code, gas:1000000})

查看当前待确认的交易:eth.getBlock(“pending”, true).transactions

启动挖矿:miner.start()

调用只能合约:contract.合约方法名.sendTransaction(参数,{from:myAddress})

只想在本地查看返回结果:contract.合约方法名.call(参数)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值