版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014409380/article/details/79897335

时隔多日,我又想起来更新博客,履行第一篇是说的后续文章的更新。

话不多说,首先需要准备一个Ubuntu系统,我用的是一台云服务器,ubuntu 16   64位的service版本

我是用root用户

开工

apt-get install software-properties-common
add-apt-repository -y ppa:ethereum/ethereum
apt-get update
apt-get install ethereum

依次执行以上命令。要依次执行。

全部执行完成后,输入如下命令,查看安装是否完成

geth --help

会出现如下结果:

NAME:

geth - the go-ethereum command line interface

Copyright 2013-2017 The go-ethereum Authors

USAGE:
   geth [options] command [command options] [arguments...]
   
VERSION:
   1.8.3-stable-329ac18e
   
COMMANDS:

account           Manage accounts

.....

证明已经安装成功。

创建一个目录,保存区块数据,并进入

mkdir eth
cd eth

创建创世初始文件genesis.json如下

vi genesis.json

进入编辑界面后,输入创世配置如下:

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

}

编辑完成后输入“:x”保存退出

将创世配置写入

geth --datadir chaindata --networkid 20180411 --rpc --rpccorsdomain "*" --nodiscover --port 8193 --rpcport 8546 init genesis.json

见到如下输出,证明初始化成功

输入如下命令,启动节点

geth --datadir chaindata --networkid 20180411 --rpc --rpccorsdomain "*" --nodiscover --port 8193 --rpcport 8546 console

迎面来的是一片控制台,如下

输入命令

personal.newAccount('123.abc')

创建一个新用户。123.abc为密码。根据各位喜好随意填写即可。

完成后会输出一个16进制的区块链地址。可以多创建几个。不要钱

此时有两个选择,一个是在控制台输入miner.start(1),启动挖矿

miner.start(1)

括号内的数字1表示启动一个线程挖矿。

第二个选择是,在控制台内输入命令exit,退出控制台

exit

重新启动节点,并开启挖矿

geth --datadir chaindata --networkid 20180411 --rpc --rpccorsdomain "*" --nodiscover --port 8193 --rpcport 8546 --mine console

比第一次的命令,多了一个--mine.

如上图所示,节点开始初始化DAG,Generation DAG会初始化两次。完成之后,伟大的挖矿工作就开始了。

此时可以暂停一下挖矿。

miner.stop()

停止挖矿后,我们可以在命令行里做一些有趣的事情。

1.查看区块数据。

eth.getBlockNumber(console.log)

输出如下:

或者

eth.blockNumber

输出

证明,当前的区块高度是31.

查看区块详情

eth.getBlock(31)

31是区块号,输出如下:

difficulty 表示当前区块难度

gasLimit 为当前区块的gas容载上限。

gasUsed表示当前区块存储交易所消耗的gas值

hash 当前区块的hash值

miner 挖掘出当前区块的矿工

nonce:当前区块pow的随机数

number 区块号

parentHash 前一区块的hash值

timestamp 出块的时间戳

等等吧,一些就不挨个解释了。以太坊的jsonrpc文档中的eth_getBlockByHash接口的返回值里有详细介绍大家自己看吧

https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_getblockbyhash

2.查看用户

eth.accounts

输出如下

查看用户余额

eth.getBalance(eth.accounts[0])

或者

eth.getBalance("0x17733a113992c9666cf5a9c76ad8b9c3d80d7f98")

双引号内为要查询的区块链用户地址。

查询两个账户的余额,结果如下

3.发起交易

首先解锁用户

personal.unlockAccount(eth.accounts[0],'123.abc',60)

然后发起交易

eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:web3.toWei(1,"ether")})

返回交易hash

把这个hash值保存一下

然后启动挖矿

miner.start(1)

如图可证明,这笔交易记录在第33块上

4.交易查询

eth.getTransaction('0xe70648f383f4b226ee56c7cc6e07e419f2e760b5ed0d54692ebea5ab12a2f7b0')

双引号中的字符串是刚才保存的hash值。

结果如下:

这是交易的详情。

详细的返回值代表的意义,可以参考rpc的文档

https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionbyhash

同时,我们可以继续查看交易回执

eth.getTransactionReceipt('0xe70648f383f4b226ee56c7cc6e07e419f2e760b5ed0d54692ebea5ab12a2f7b0')

结果如下:

结果同样可以参考jsonrpc文档

https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_gettransactionreceipt

其还有好多有意思的命令,大家就慢慢探索吧,又不详尽或者错误的地方希望大家多包涵,多交流。

原创内容,分享请注明出处,多谢各位。

以太坊 Geth 环境搭建(Ubuntu)的更多相关文章

  1. Ubuntu 16.04 以太坊开发环境搭建

    今天我们来一步一步从搭建以太坊智能合约开发环境. Ubuntu16.04 安装ubuntu16.04.下载链接 //先update一下(或者换国内源再update) sudo apt-get upda ...

  2. 以太坊geth主网全节点部署

    以太坊geth主网全节点部署 #环境 ubuntu 16.4 #硬盘500GB(目前占用200G) #客户端安装 # 查看下载页面最新版 # https://ethereum.github.io/go ...

  3. 以太坊geth客户端下的一些常用命令

    这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ...

  4. Django + Apache + wsgi配置和环境搭建(ubuntu)

    上一篇写了Django + nginx + uwsgi配置和环境搭建(ubuntu) 由于公司服务器环境问题,又配置了apache的环境.记录例如以下: 一. 安装环境: #apache sudo a ...

  5. 以太坊geth区块链私链建立

      以太坊geth区块链私链建立 geth的github https://github.com/ethereum/go-ethereum 下载最新(1.8)的geth,windows下安装很简单 关于 ...

  6. 以太坊-Win环境下remix环境搭建

    一.node.js环境搭建 有多个安装方法,但是注意npm与node版本相关性较强!以下方案较为简便 1.下载网址 http://nodejs.cn/download/ 2.下载window 64位 ...

  7. docker 搭建以太坊私有链搭建

    最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建 于是我找到了官方的地址 https://github.com/ethereum/go-et ...

  8. c#实战开发:以太坊私链搭建(一)

    1.第一步环境搭建 运行环境:window  客户端版本:Go语言geth 下载地址https://ethereum.github.io/go-ethereum/downloads/ 以太坊API中文 ...

  9. 以太坊开发教程(二) 利用truffle发布宠物商店 DAPP 到 以太坊测试环境Ropsten

    1.环境安装 1) node安装 设置镜像地址: curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -下载安装 ...

随机推荐

  1. 字符串slice、substring、substr

    1.slice() 可以为负数,如果起始位置为负数,则从字符串最后一位向前找对应位数并且向后取结束位置,如果为正整数则从前往后取起始位置到结束位置. 2.substring() 只能非负整数,截取起始 ...

  2. Django路由及函数视图

    路由系统 在django中,uri与逻辑函数的对应关系我们称之为路由系统 伪静态 伪静态是相对于静态文件来说的,例如https://www.cnblogs.com/hesujian/p/1116581 ...

  3. liunx mkisofs 命令的使用(制作iso)

    参考的博客 http://www.cnblogs.com/darkknightzh/p/8564483.html 有很多时候需要在liunx 环境中将文件打成 iso 所有很多时候就会用到这个命令(m ...

  4. Error:Unable to start the daemon process. This problem might be caused by incorrect configuration of

    我试了修改或者配置gradle文件没有成功解决的 ,所以试了这个解决方案 试了下这个是可以解决的. 变量名   _JAVA_OPTIONS 变量值   -Djava.net.preferIPv4Sta ...

  5. 【OGG 故障处理】OGG-01031

    故障原因 -------------------- 网络异常,导致DP进程异常中断   故障现象 -------------------- 源端DP 进程全部挂起,且启动失败 GGSCI 34> ...

  6. adb使用时出现unanthorized问题

    adb使用时出现unanthorized问题 ADB 启动时,adb devices出现unanthorized问题. 检查USB调试是否开启. 重新拔插USB数据线是否有授权提示 重启adb :ad ...

  7. 《浏览器工作原理与实践》 <12>栈空间和堆空间:数据是如何存储的?

    对于前端开发者来说,JavaScript 的内存机制是一个不被经常提及的概念 ,因此很容易被忽视.特别是一些非计算机专业的同学,对内存机制可能没有非常清晰的认识,甚至有些同学根本就不知道 JavaSc ...

  8. idou老师教你学Istio 07: 如何用istio实现请求超时管理

    在前面的文章中,大家都已经熟悉了Istio的故障注入和流量迁移.这两个方面的功能都是Istio流量治理的一部分.今天将继续带大家了解Istio的另一项功能,关于请求超时的管理. 首先我们可以通过一个简 ...

  9. SEO 统计算法

    1)简单粗暴型的,这里不用去管浏览器的user-agent,不管cookie等信息,每产生一次PV,就直接计数,优点:简单,缺点:可能不真实,也可能有刷量数据 2) 稍微细腻点的统计,会区分新老用户, ...

  10. 一个基于TCP/IP的小项目,实现广播消息的功能。(超详细版)

    1.结合现状 功能分析 该功能基于上个项目的改进,主要是通过对服务器端代码的修改,以及对客户端作少许修改,实现开启多客户端时,一个客户端发送消息,达到对所有客户端广播的效果.可参考网吧里的点歌系统,比 ...