以太坊 Geth 环境搭建(Ubuntu)
版权声明:本文为博主原创文章,未经博主允许不得转载。 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)的更多相关文章
- Ubuntu 16.04 以太坊开发环境搭建
今天我们来一步一步从搭建以太坊智能合约开发环境. Ubuntu16.04 安装ubuntu16.04.下载链接 //先update一下(或者换国内源再update) sudo apt-get upda ...
- 以太坊geth主网全节点部署
以太坊geth主网全节点部署 #环境 ubuntu 16.4 #硬盘500GB(目前占用200G) #客户端安装 # 查看下载页面最新版 # https://ethereum.github.io/go ...
- 以太坊geth客户端下的一些常用命令
这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ...
- Django + Apache + wsgi配置和环境搭建(ubuntu)
上一篇写了Django + nginx + uwsgi配置和环境搭建(ubuntu) 由于公司服务器环境问题,又配置了apache的环境.记录例如以下: 一. 安装环境: #apache sudo a ...
- 以太坊geth区块链私链建立
以太坊geth区块链私链建立 geth的github https://github.com/ethereum/go-ethereum 下载最新(1.8)的geth,windows下安装很简单 关于 ...
- 以太坊-Win环境下remix环境搭建
一.node.js环境搭建 有多个安装方法,但是注意npm与node版本相关性较强!以下方案较为简便 1.下载网址 http://nodejs.cn/download/ 2.下载window 64位 ...
- docker 搭建以太坊私有链搭建
最近区块链,火得不行,身边也有朋友准备玩这个,说是搭了一个星期,没有把环境搭建起来,叫我帮忙看看环境怎么搭建 于是我找到了官方的地址 https://github.com/ethereum/go-et ...
- c#实战开发:以太坊私链搭建(一)
1.第一步环境搭建 运行环境:window 客户端版本:Go语言geth 下载地址https://ethereum.github.io/go-ethereum/downloads/ 以太坊API中文 ...
- 以太坊开发教程(二) 利用truffle发布宠物商店 DAPP 到 以太坊测试环境Ropsten
1.环境安装 1) node安装 设置镜像地址: curl --silent --location https://rpm.nodesource.com/setup_8.x | bash -下载安装 ...
随机推荐
- 取出List<Map<String,Object>>里面Map的key:value值
1.取出Map其中一个属性的值 Map map = new HashMap(); map.put("key1", "value1"); map.put(&quo ...
- 新人数据库连接不上或数据库配置管理器里面sql服务打不开问题
新人在链接数据库时可能会出现链接不上数据库,这个问题解决方法是大家找到配置管理器里面,把那些停用的功能开启一下应该就可以.但是我们有的电脑还会遇到里面配置里面什么也没有的情况,这个时候我们就得到控制面 ...
- Linux用户管理——useradd
除了useradd还有一个命令adduser,两者是链接关系 [root@51cto ~]# which adduser /usr/sbin/adduser [root@51cto ~]# which ...
- WebLogic 12c 版 下载与安装(ubuntu)
下载地址:https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html 参考地址:https://blo ...
- Ubuntu Linux虚拟机与windows快速创建共享文件夹
有时候我们需要在windows下与远程Linux服务器传输文件,之前使用pscp传输文件很方便,但不方便传输多文件,同时也不便于查看.看了网上的教程总结创建共享文件夹的流程: 1.首先在本地windo ...
- BZOJ 4008 亚瑟王(概率DP 奥妙重重)
题意 中文题面,就不解释了 分析 显然这道题直接求期望太麻烦,想想转化问题(这转化太神了). 定义f(i,j)f(i,j)f(i,j)表示第iii张卡总共被经过jjj次的概率,有转移方程式 f(i,j ...
- bzoj 5072
对于某一大小的连通子图包含的黑点的数目的最大值和最小值都能取到考虑树形dp$f[i][j]$ 表示从 $i$ 的子树中选出大小为 $j$ 的联通子图黑点数目的最小值$g[i][j]$ 表示从 $i$ ...
- [CQOI2016]手机号码 数位DP
[CQOI2016]手机号码 用来数位DP入门,数位DP把当前是否需要限制取数范围(是否正在贴着临界值跑,即下面的limited)和一切需要满足的条件全部塞进记忆化搜索参数里面就好了,具体情况转移便好 ...
- windows平台下MySQl的安装、破解和使用
#1.下载:MySQL Community Server 5.7.16 http://dev.mysql.com/downloads/mysql/ #2.解压 如果想要让MySQL安装在指定目录,那么 ...
- 2019.6.28 校内测试 T4 【音乐会】达拉崩吧·上
考试的一道附加题~ 一看题目描述:把区间[l,r]里每个数异或上x,求区间[l,r]里所有数的异或和,这明显的要用数据结构或RMQ吧. 恩,所以正解就是线段树啦,至于树状数组行与否,不知道~ wate ...