区块链入门教程eth的账户和基本单位

我们在命令行输入 eth.accounts 可以看到当前该区块链中共有几个账号,以及每个账号的公钥地址。
在eth系统中,状态是由被称为“账户”(每个账户由一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。
eth的账户包含四个部分:
随机数,用于确定每笔交易只能被处理一次的计数器
账户目前的以太币余额
账户的合约代码,如果有的话
账户的存储(默认为空)
简单地说,每一个eth账户都有一对公钥和私钥组成。
公钥我们可以理解为就是账户地址,任何其他账户都可以访问该地址
私钥可以理解为一段加密过的密码,这一对公钥和私钥共同组成一个唯一标示的eth账户。
例如在上节我们建立的第一个eth账户 eth.accounts[0] 中,地址 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f 就是公钥,而对密码加密而成的,就是私钥。
增加账户
我们可以输入命令 personal.newAccount(“123”) 来新建一个账户,(注意123可以修改为任何别的密码)
当eth的私链在挖矿时候,所挖到的以太币都会存入第一个eth账户中,即eth.accounts[0] 中,而eth.accounts[1]默认是不会有以太币的。这个时候我们可以用下面的命令来查看eth.accounts[0] 中的以太币余额。
eth.getBalance(“0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f”)
如何在两个账户之间进行以太币转换
前面说过每个账户的公钥(地址)是一切eth账户操作的核心,但地址字符串太长,我们用acc0/acc1 分别代表accounts[0]和[1],另外设置要转移0.01个以太币
1.> acc0 = eth.accounts[0]
2."0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f"
3.> acc1 = eth.accounts[1]
4."0xb8b12a801b610176935a15321f77b48dd5c0c448"
5.> amount = web3.toWei(0.01)
6."10000000000000000"

这个时候我们可以使用eth.sendTransaction来将0.01个以太币从acc0转移到acc1中。

1.> eth.sendTransaction({from: acc0, to: acc1, value: amount})

eth的一个保护机制,每隔一段时间账户就会自动锁定,这个时候任何以太币在账户之间的转换都会被拒绝,除非把该账户解锁.
这个时候我们就需要执行 personal.unlockAccount(acc0) 并输入密码来解锁acc0才可。

1.> personal.unlockAccount(acc0)
2.Unlock account 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f
3.Passphrase:
4.true
5.>

这个时候我们重新执行命令eth.sendTransaction({from: acc0, to: acc1, value: amount}), 结果如下:

1.> eth.sendTransaction({from: acc0, to: acc1, value: amount})
2."0xeea74dd5ff3f1287614d52ebb674edb93e8c5e51e4296835044d3d858d3d9f10"
3.> eth.getBalance(acc1)
4.10000000000000000
5.>

我们可以看到这个时候acc1有了数值10000000000000000, 而不再是之前的0了。但我们明明要给0.01ether币的,为何数值会如此大呢? 其实是对的,我们只要输入命令web3.fromWei(10000000000000000,”ether”) 就可以知道了。

1.> web3.fromWei(10000000000000000,"ether")
2."0.01"

Ether币的基本单位
Ether币最小的单位是Wei,也是命令行默认的单位, 然后每1000个进一个单位,依次是

1.kwei (1000 Wei)
2.mwei (1000 KWei)
3.gwei (1000 mwei)
4.szabo (1000 gwei)
5.finney (1000 szabo)
6.ether (1000 finney)

简单地说就是就是1 以太币 = 1000000000000000000 Wei (这就是上一站章中为何我们转移0.01个以太币,结果却显示很长的原因)
如何进行ether 和 Wei之间的转换

1.Ether–> Wei:web3.toWei
2.> web3.toWei(1)
3."1000000000000000000"
4.> web3.toWei(1.3423423)
5."1342342300000000000"
6.> web3.toWei(0.00034)
7."340000000000000"

1.>
2.Wei –> Ether: web3.fromWei
3.> web3.fromWei(10000000000000000)
4."0.01"
5.> web3.fromWei(1000000000000000000)
6."1"
7.>

原文地址:http://blog.51cto.com/14041296/2308861

时间: 2024-11-08 03:39:03

区块链入门教程eth的账户和基本单位的相关文章

兄弟连区块链入门教程eth源码分析RPC分析

这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作eth的 JavaScript 对象,可以直接使用这些对象.这些对象主要包括: eth:包含一些跟操作区块链相关的方法:net:包含一些查看p2p网络状态的方法:admin:包含一些与管理节点相关的方法:miner:包含启动&停止挖矿的一些方法:personal:主要包含一些管理账户的方法:txpool:包含一些查看交易内存池的方法:web3

区块链入门教程以太坊源码分析fast sync算法一

区块链入门教程以太坊源码分析fast sync算法一,2018年下半年,区块链行业正逐渐褪去发展之初的浮躁.回归理性,表面上看相关人才需求与身价似乎正在回落.但事实上,正是初期泡沫的渐退,让人们更多的关注点放在了区块链真正的技术之上.this PR aggregates a lot of small modifications to core, trie, eth and other packages to collectively implement the eth/63 fast synch

区块链入门教程

区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来. 可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教程.毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚.我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿.为什么挖矿越来越难等问题. 需要说明的是,我并非这方面的专家.虽然很早就关注,但是仔细地了解区块链,还是从今年初开始.文中的错误和不准确的地方,欢迎大家指正. 一.区块链的本质

区块链入门教程(转)

原作者:阮一峰 原文链接:http://www.ruanyifeng.com/blog/2017/12/blockchain-tutorial.html 区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来. 可是,简单易懂的入门文章却很少.区块链到底是什么,有何特别之处,很少有解释. 下面,我就来尝试,写一篇最好懂的区块链教程.毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚.我希望读完本文,你不仅可以理解区块链,还会明白什么是挖矿.为什么挖矿越来越难等问

兄弟连区块链入门教程分享区块链POW证明代码实现demo

这里强调一下区块链的协议分层?应用层?合约层?激励机制?共识层?网络层?数据层上 一篇主要实现了区块链的 数据层,数据层主要使用的技术就是对数据的校验,求hash.这里介绍工作量证明POW, POW是属于共识机制的内容.PoW机制中根据矿工的工作量来执行货币的分配和记账权的确定.算力竞争的胜者将获得相应区块记账权和比特币奖励.因此,矿机芯片的算力越高,挖矿的时间更长,就可以获得更多的数字货币.优点:算法简单,容易实现:节点间无需交换额外的信息即可达成共识:破坏系统需要投入极大的成本.缺点:浪费能

兄弟连区块链入门教程之基础开发通过接口查询币种提币情况bch

代码如下 package main import ( "encoding/json" "fmt" "github.com/buger/jsonparser" "github.com/levigross/grequests" ) // HTTPGet . func HTTPGet(url string, requestOptions *grequests.RequestOptions) (response []byte, err

区块链入门教程以太坊源码分析p2p-rlpx节点之间的加密链路二

// Sign known message: static-shared-secret ^ nonce // 这个地方应该是直接使用了静态的共享秘密. 使用自己的私钥和对方的公钥生成的一个共享秘密. token, err = h.staticSharedSecret(prv) if err != nil { return nil, err } //这里我理解用共享秘密来加密这个initNonce. signed := xor(token, h.initNonce) // 使用随机的私钥来加密这个

区块链入门教程以太坊源码分析p2p-dial.go源码分析

dial.go在p2p里面主要负责建立链接的部分工作. 比如发现建立链接的节点. 与节点建立链接. 通过discover来查找指定节点的地址.等功能.dial.go里面利用一个dailstate的数据结构来存储中间状态,是dial功能里面的核心数据结构.// dialstate schedules dials and discovery lookups.// it get's a chance to compute new tasks on every iteration// of the ma

区块链入门学习资源

众所周知去年比特币大涨,很多人都投入到挖矿或者投资比特币上,而比特币的底层技术是区块链.所以导致最近区块链技术火热,区块链声称能够改变未来的互联网,让其能够成为一个能够传递价值的互联网.很多小伙伴也纷纷想投入到区块链的学习,虽然这是一项08年就提出的技术,可是到近年来才开始被广泛受到关注.所以网络上的学习资源也参差不齐,我这里就介绍一些我看到过的,而且还不错的入门学习资源.后续如果看到一些好的学习资源也会在这里更新. 如果英文好的话还可以不局限于国内的资源,国外的学习资源更丰富,还有教学视频啥的