以太坊Ethereum命令

2023-11-09

etheum命令

查询账户

eth.accounts

创建账户

personal.newAccount("password")

查看账户余额

eth.getBalance(eth.accounts[0]) 

或指定具体的账户

eth.getBalance("0x60ea70d3ee0ce68a29f0b427981d781bc503e583")

启动&停止挖矿

miner.start() 或miner.start(1)

其中start的参数表示挖矿使用的线程数。第一次启动挖矿会先生成挖矿所需的DAG文件,这个过程有点慢,等进度达到100%后,就会开始挖矿,此时屏幕会被挖矿信息刷屏。

miner.stop() 

挖到一个区块会奖励5个以太币,挖矿所得的奖励会进入矿工的账户,这个账户叫做coinbase,默认情况下coinbase是本地账户中的第一个账户:

eth.coinbase

现在的coinbase是账户0,要想使挖矿奖励进入其他账户,通过miner.setEtherbase()将其他账户设置成coinbase即可:

miner.setEtherbase(eth.accounts[1]) 

或指定具体的账户

miner.setEtherbase("0x60ea70d3ee0ce68a29f0b427981d781bc503e583")  

 

getBalance()返回值的单位是wei,wei是以太币的最小单位,1个以太币=10的18次方个wei。要查看有多少个以太币,可以用web3.fromWei()将返回值换算成以太币:

web3.fromWei(eth.getBalance("0x60ea70d3ee0ce68a29f0b427981d781bc503e583"),"ether")

 

发送交易

账户解锁,账户每隔一段时间就会被锁住,要发送交易,必须先解锁账户

personal.unlockAccount("0x8261d898e3bc86803a6a2a06d80abd67d6f68c87","123456")

发送交易,并返回交易hash

eth.sendTransaction({from:"0x8261d898e3bc86803a6a2a06d80abd67d6f68c87",to:"0x60ea70d3ee0ce68a29f0b427981d781bc503e583", value: web3.toWei(2, "ether")})

 

此时交易已经提交到区块链,返回了交易的hash,但还未被处理,这可以通过查看txpool来验证:

txpool.status  

txpool中pending的交易数量为0,说明交易已经被处理

要使交易被处理,必须要挖矿

 

通过交易hash查看交易

eth.getTransaction("0x736b00f63e49cfea9065c358c67753fee7cb6304557e57ffcc99b0889866a445")

 

通过区块号查看区块

eth.getBlock(5670)

连接到其他节点

节点二(246)连接到节点一(245)

 

先获取节点一的nodeInfo,

admin.nodeInfo.enode

 

然后在节点二(246)上执行

admin.addPeer("enode://9194db2ebba530e1124ab9a17483a361c7183e93546e160afc44ab895b3fdc8479856162817b74e23a76bec7f0c1172aef2f686a3caf02fe809de261946ead41@192.168.30.245:30303")

 

admin.peers可以查看连接到的其他节点信息,通过net.peerCount可以查看已连接到的节点数量

在节点一上查看

 

gas消耗

1,

账号0x8261d898e3bc86803a6a2a06d80abd67d6f68c87向账号0x60ea70d3ee0ce68a29f0b427981d781bc503e583转让2个ETH。

 

2,

账号0x60ea70d3ee0ce68a29f0b427981d781bc503e583得到2个ETH,

账号0x8261d898e3bc86803a6a2a06d80abd67d6f68c87减少了2个ETH + 0.000378个ETH,

可认为0.000378ether是账号0x8261d898e3bc86803a6a2a06d80abd67d6f68c87为这笔转账交易所支付的额外费用(gas消耗)。

 

http://ethfans.com/topics/66,转帖一下:

在以太坊运行程序需要付费,可以理解成比特币中的交易费用。以太坊的交易费用=gas数量 * gas price ,gas price (gas 单价,以以太币计)可以由开发者设置。不同的计算类型所需的gas也不一样,计算越复杂,需要的gas越多。所以,如果想运行程序,先用以太币购买gas。每个区块提供的gas是有上限的,目前大约是310万个gas。如果你设置的gas price太低,是买不到gas的,这就是一个gas市场。 gas可以翻译为燃料,加了燃料后,以太坊共识引擎才能启动。就像汽车一样,先用人民币去买汽油。

 

本地节点连接开发环境geth

1、下载geth软件,安装到D:\Geth

 

2、将创世区块文件拷贝D:\Geth

genesis.json

{

    "config": {

        "chainId": 15,

        "homesteadBlock": 0,

        "eip155Block": 0,

        "eip158Block": 0

    },

    "coinbase": "0x0000000000000000000000000000000000000000",

    "difficulty": "0x40",

    "extraData": "",

    "gasLimit": "0xffffffff",

    "nonce": "0x0000000000000042",

    "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",

    "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",

    "timestamp": "0x00",

    "alloc": {}

}

 

3、初始化创世纪节点,并设置data目录:

geth --datadir ./data/00 init genesis.json

 

在geth安装目录打开终端输入

 

4、启动节点, 加上console 表示启动后,启用命令行:

geth --identity "fish dev" --datadir ./data/00 --networkid 128 --nodiscover --rpc --rpcapi "db,eth,net,web3" --port 30303 --rpcport 8545 console

 

5、连接开发服务器247节点上

admin.addPeer("enode://e851a146f7a1f98e08989ea761ebe3d646251be52831d53015716fb1aaed7d8b188cbbbad2c50c0af7ee8cb4ee8c37e937f49593d64ce971bf85164f4de493eb@192.168.30.247:30303")

 

查看连接信息

admin.peers

 

6、在247查询连接信息

amin.peers

 

7、转账验证

在本机新建账户进行转账验证

personal.newAccount("123456")

247:

eth.getBalance("0x8261d898e3bc86803a6a2a06d80abd67d6f68c87")

personal.unlockAccount("0x8261d898e3bc86803a6a2a06d80abd67d6f68c87", "123456")

eth.sendTransaction({from:"0x8261d898e3bc86803a6a2a06d80abd67d6f68c87",to:"0x9ad0a2dc1f7809cc2f50a4f294b3893515b4467c", value: web3.toWei(2, "ether")})

本机:

eth.getBalance("0x9ad0a2dc1f7809cc2f50a4f294b3893515b4467c")

 

挖矿难度值设置

接下来是难度值的更改:

十六进制 “0x99999” 对应的十进制 629145还是挺快的,半分钟大概30个,就是一秒一个

DDDDDDDD 3722304989 挖不到 放大了近四万倍 等了三分钟没挖到

176ffe890 6291450000 放大一万倍,五分钟没挖到

 

好吧,我放弃了,设置的小一点

    5ffffa 6291450 放大十倍 一分钟五个

    2ffffd 3145725 五倍 一分钟五到十个之间个

    bffff4 12582900 二十倍 六分钟挖了八个

    3bfffc4 62914500 一百倍 六分钟两个

    12bffed4 314572500 五百倍 15分钟没有一个

    77fff88 125829000 两百倍 十分钟两个

四五分钟一个区块是不是差不多了呢? 挖矿速度是可以通过算法自动调整,让速度保持与我们设置的难度值保持相当,但是后面区块的难度值都是跟初始块设置的难度值相关,所以只是由初始块的难度值决定整个链的速度.

这个是黄皮书关于难度值设定的算法

 

连接geth节点

 

另外一个启动geth的方法是连接到一个geth节点:

$ geth attach ipc:/some/custom/path

$ geth attach http://191.168.1.1:8545

$ geth attach ws://191.168.1.1:8546

 

如连接刚刚打开的开发模式节点使用:

geth attach ipc:testNet/geth.ipc

 

查询geth启动进程

ps -ef | grep 'geth --identity'

 

合约部署

truffle migrate

truffle migrate --reset

由于合约移植是懒编译的,如果发现已经发布过,且发布的版本号没有变化就不会再发布,所以使用–reset。使用truffle migrate –reset来强制重编译并发布所有合约。

 

Block

参数说明:

参数

描述

difficulty

挖矿难度,这里转化为 10 进制,等于”0x400”,后面区块难度会随着区块高度升高而提高

extraData

当前区块附加信息,若创世区块该值为空,在第二个区块中会保存,创建该私有链时的 geth,go,及操作系统版本,保存信息为第一个挖到该区块的矿工信息

gasLimit

十进制的 gasLimit 值,会随之区块高度提高而提高

gasUsed

gas 花费,在以太坊中交易和部署智能合约会消耗 gas,暂时可以理解为以太币

hash

当前区块hash值

logsBloom

保存当前区块日志

miner

挖到该区块的矿工地址

mixHash

与 nonce 配合用于挖矿,由上一个区块的一部分生成的 hash

nonce

工作量证明

number

当前区块高度

parentHash

上一个区块 hash 值

receiptsRoot

块的收益树根结果

sha3Uncles

对叔区块进行 hash 运算的结果

size

区块大小,以字节为单位

stateRoot

块的状态树根结果

timestamp

时间戳

totalDifficulty

达到该区块的难度总数

transactions

以数组的形式保存交易的 tx 值

transactionsRoot

交易的默克尔树根

uncles

以数组表示数区块的哈希

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以太坊Ethereum命令 的相关文章

随机推荐

  • CTF BugKu平台———(Web篇②)

    源代码 unescape编码 https tool chinaz com Tools Escape aspx PS p1 35 34 61 61 32 p2 然后提交即可 67d709b2b54aa2aa648cf6e87a7114f1 文
  • 操作系统 线程同步实验

    操作系统 线程同步实验 一 实验目标 顺序表循环队列实现的实验目标 掌握使用顺序表和循环队列实现队列的基本操作 如队列的插入 删除 遍历等 同时了解循环队列的内部实现原理和利用循环队列解决实际问题的方法 Linux生产者 消费者问题的多线程
  • MFC自定义消息

    一 背景 消息机制是windows程序的典型运行机制 在MFC中有很多已经封装好了的消息 但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能 这时候MFC的向导不能帮助我们做到这一点 对此 我们可以通过添加相应的代码去完成
  • C++ 深浅拷贝、写时拷贝

    前言 本章以string类为例介绍浅拷贝与深拷贝 引用计数写时拷贝作为了解内容 string类的模拟实现参考C string类的模拟实现 文章目录 1 浅拷贝 2 深拷贝 3 引用计数 写时拷贝 1 浅拷贝 浅拷贝 对于有申请空间的对象的类
  • Java集合类的总结与比较

    Collection List LinkedList ArrayList Vector Stack Set Map Hashtable HashMap WeakHashMap Collection接口 Collection是最基本的集合接口
  • react自定义useState hook获取更新后值

    您好 如果喜欢我的文章 可以关注我的公众号 量子前端 将不定期关注推送前端好文 在业务中有比较多的场景需要在setState中获取更新后的值从而进行下一步的业务操作 在Class组件中可以通过 this setState name 123
  • 全网最详细中英文ChatGPT-GPT-4示例文档-官网推荐的48种最佳应用场景——从0到1快速入门自然语言指令创建支付API代码(附python/node.js/curl命令源代码,小白也能学)

    目录 Introduce 简介 setting 设置 Prompt 提示 Sample response 回复样本 API request 接口请求 python接口请求示例 node js接口请求示例 curl命令示例 json格式示例
  • 分布式系统领域经典论文翻译集

    分布式领域论文译序 sql nosql年代记 SMAQ 海量数据的存储计算和查询 一 google论文系列 1 google系列论文译序 2 The anatomy of a large scale hypertextual Web sea
  • Azure云服务基础其五

    文章目录 Azure云服务基础其五 什么是Azure Kubernetes 服务 创建 Kubernetes集群 部署应用程序 测试应用程序 Azure云服务基础其五 什么是Azure Kubernetes 服务 官网的解释是Azure K
  • docker搭建mysql高可用集群

    docker中搭建mysql高可用集群 percona xtradb cluster percona xtradb cluster是一款很棒的mysql高可用集群解决方案 特点是每个节点都能进行读写且都保存全量的数据 也就是说在任何一个节点
  • 大数据 第一节课 linux基础 基本的操作

    Linux的基础 一 Linux的实验环境 二 安装配置Linux和Linux的目录结构 1 安装Linux的过程中 注意的问题 虚拟机类型 Redhat linux 7 64位 重要的 网卡的类型 仅主机模式 host only IP地址
  • 性能测试(并发负载测试)测试分析

    声明 此文章是从网络上转载下来的 至于真实出处无法找到 在对系统进行测试的时候 通常有一个难点那就是使用LR JMeter等进行了性能测试 但是很难进行测试后的分析 以下很大一部分是从网上转载下的一位前辈对性能测试后的分析的见解 分析原则
  • 一些诗集-自创+整理

    常学问 传统文化常学问 研究中易琢磨神 时时出来抬头看 兼容并包实践真
  • win10和linux双系统免u盘,WIN10下免U盘安装Ubuntu双系统

    目录 一 工具下载 二 安装前的准备工作 三 安装Ubuntu系统 四 注意 最后 附下本文参考的博客 一 工具下载 1 下载Ubuntu操作系统 Ubuntu操作协同最好是去Ubuntu官方网站下载 https ubuntu com do
  • 你知道es是如何计算相似度得分的吗?

    1 es中相似度计算公式 BM25 6 x版本和7 x 版本的es的默认得分计算方式都是BM25 假如用户给定一个输入 Q Q Q 其包含了关键字 q 1
  • Latex插入表格及表格设置

    前言 下面将介绍简单的表格插入与格式设置 更多请参考texdoc中宏包说明 1 导言区 代码如下 示例 documentclass article usepackage ctex 更多表格设置见 texdoc booktab 三线表 tex
  • Unity3D FPS Game:第一人称射击游戏(三)

    耗时一周制作的第一人称射击游戏 希望能帮助到大家 由于代码较多 分为三篇展示 感兴趣的朋友们可以点击查看 Unity3D FPS Game 第一人称射击游戏 一 Unity3D FPS Game 第一人称射击游戏 二 Unity3D FPS
  • linux系统中防火墙脚本,防火墙设置脚本

    防火墙设置脚本 gt success 在web服务器中 只需要开启 web服务 和ssh服务还有 ping 其它的一率禁止 脚本如下 gt warning 在配置防火墙的时 一定要注意 不要把自己关在外面 最简单的方式 是使用脚来处理 bi
  • strtok_s的用法基本解释(2021-07-12)

    strtok s的用法基本解释 char string A string tof tokens nand some more tokens char seps t n char token NULL printf Tokens n char
  • 以太坊Ethereum命令

    etheum命令 查询账户 eth accounts 创建账户 personal newAccount password 查看账户余额 eth getBalance eth accounts 0 或指定具体的账户 eth getBalanc