以太坊系统账户

news/2024/7/7 20:18:15

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

在这里插入图片描述

在以太坊系统中,状态是由被称为“账户”(每个账户由一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。以太坊的账户包含四个部分:随机数,用于确定每笔交易只能被处理一次的计数器账户目前的以太币余额账户的合约代码,如果有的话账户的存储(默认为空)简单地说,每一个以太坊账户都有一对公钥和私钥组成。公钥我们可以理解为就是账户地址,任何其他账户都可以访问该地址私钥可以理解为一段加密过的密码,这一对公钥和私钥共同组成一个唯一标示的以太坊账户。例如在上节我们建立的第一个以太坊账户eth.accounts[0] 中,地址 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f 就是公钥,而对密码加密而成的,就是私钥。增加账户我们可以输入命令personal.newAccount(“123”) 来新建一个账户,(注意123可以修改为任何别的密码)

当以太坊的私链在挖矿时候,所挖到的以太币都会存入第一个以太坊账户中,即eth.accounts[0] 中,而eth.accounts[1]默认是不会有以太币的。这个时候我们可以用下面的命令来查看eth.accounts[0] 中的以太币余额。

eth.getBalance(“0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f”)

如何在两个账户之间进行以太币转换前面说过每个账户的公钥(地址)是一切以太坊账户操作的核心,但地址字符串太长,我们用acc0/acc1 分别代表accounts[0]和[1],另外设置要转移0.01个以太币

acc0= eth.accounts[0]“0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f”

acc1= 1eth.accounts[1]“0xb8b12a801b610176935a15321f77b48dd5c0c448”

amount = web3.toWei(0.01)“10000000000000000”

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

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

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

personal.unlockAccount(acc0)

Unlock account 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12fPassphrase: true>

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

eth.sendTransaction({from: acc0, to: acc1, value: amount})“0xeea74dd5ff3f1287614d52ebb674edb93e8c5e51e4296835044d3d858d3d9f10”

eth.getBalance(acc1)10000000000000000

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

web3.fromWei(10000000000000000,“ether”)“0.01”

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

kwei (1000 Wei)mwei (1000 KWei)gwei (1000 mwei)szabo (1000 gwei)finney (1000 szabo)ether (1000 finney)

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

Ether–> Wei:web3.toWei

web3.toWei(1)“1000000000000000000”

web3.toWei(1.3423423)“1342342300000000000”

web3.toWei(0.00034)“340000000000000”

Wei –> Ether: web3.fromWei

web3.fromWei(10000000000000000)“0.01”

web3.fromWei(1000000000000000000)“1”


http://lihuaxi.xjx100.cn/news/237308.html

相关文章

c# 持续集成 单元测试_如何在不进行单元测试的情况下设置持续集成

c# 持续集成 单元测试Do you think continuous integration is not for you because you have no automated tests? Or no unit tests at all? Not true. Tests are important. But there are many more aspects to continuous integration than just testing. Lets see what…

[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt--//简单探究12c TABLE ACCESS BY INDEX ROWID BATCHED特性.--//当使用12c时,执行计划出现TABLE ACCESS BY INDEX ROWID BATCHED,做一些探究.--//本文主要探究如何使用提示或者隐含参数控制这种特性.1.环境:SCOTTtest01…

解析equals(Object obj)和compareTo(T obj)

背景:最近在研究静态扫描的东西,遇到一个规则:"equals(Object obj)" should be overridden along with the "compareTo(T obj)" method 然后就想深度扒一扒equals和compareTo有什么区别 1.java.lang.Object是所有类的父类…

区块链技术名词简介

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 零知识证明 零知识证明指证明者能在不向验证者提供任何有用的信息下,使验证者相信某个论断是正确的。零知识证明实质是一种涉及两方或更…

RPC-原理及RPC实例分析

还有就是:RPC支持的BIO,NIO的理解 (1)BIO: Blocking IO;同步阻塞; (2)NIO:Non-Blocking IO, 同步非阻塞; 参考:IO多路复用,同步,异步,阻塞和非阻塞 区别 在学校期间大家都写过不少程序,比如写个…

C++基础技术简介

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 容器 容器用于存储数据元素,是由长度可变的同类型的元素构建成的序列。 Vector:用于快速定位任意元素及主要在元素序列的尾…

客户旅程_编程如何找到我的:21岁开发人员的7年旅程

客户旅程Ive read some amazing stories about peoples coding journeys here, and I was interested to share my own as well. Before starting out with anything about my journey, let me introduce myself quickly here, and then well go into flashback mode. 我在这里…

usermod

功能说明:用于修改系统已经存在的用户账号信息。 参数选项:-c comment 修改用户password文件中用户说明栏,同useradd -c功能。-d home_dir 修改用户每次登入时所使用的家目录,同useradd -d功能。-e expired_date 修改用户终止日期…