博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mac 配置以太坊本地开发环境
阅读量:6373 次
发布时间:2019-06-23

本文共 3437 字,大约阅读时间需要 11 分钟。

hot3.png

使用官方的go 版本,的直接安装,也可以通过源码(git clone https://github.com/ethereum/go-ethereum)构建;

brew tap ethereum/ethereumbrew install ethereum

安装好以后就可以启动了,因为是在本地开发所以启动的时候要加一些自定义启动参数,来配置一下。

 

查看帮助命令

geth -h

 

 

以太坊客户端启动:

geth --datadir "~/ethdev" --dev  

指定一个数据存储目前避免和公有链数据冲突,—dev指定为开发模式这样就不用同步公有链上的区块,公有链的数据量几十个G太大了,共识速度 也比较慢

 

 

以上命令启动成功之后,需要另打一个终端进入登录

geth  --dev console 2>> file_to_log_output

 

进入开发模式的控制台,并把日志输出到 一个文本文件

Last login: Sat Nov  5 09:17:42 on ttys000localhost:~ pro1$ geth --dev console 2>> file_to_log_outputWelcome to the Geth JavaScript console!instance: Geth/v1.4.18-stable-c72f5459/darwin/go1.7.3coinbase: 0x73e8655a84a37685d98891b7a9333a7423e12cb3at block: 0 (Thu, 01 Jan 1970 08:00:00 CST) datadir: /var/folders/8z/kp024pxd4j9194b34z_v06_c0000gn/T/ethereum_dev_mode modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 shh:1.0 txpool:1.0 web3:1.0> 

 

 

以上是登录成功的画面,登录成功以后可以查看帐户信息,当前有哪些帐户

> eth.accounts["0x73e8655a84a37685d98891b7a9333a7423e12cb3", "0xa9d6dfff13c1050f19a8ffc2811c68842797d01c"]> 

我本地创建已经创建了两个帐户

 

再创建一个:

> personal.newAccount('11111111')"0xe30cecc37776895389b94033ac65eb3b98294659"> 

以上通过personal.newAccount 传入密码参数即可创建一个新帐户并返回新的帐户地址;

 新打开一个终端可以查看本地创建了多少个帐户:

localhost:~ pro1$ geth account listAccount #0: {73e8655a84a37685d98891b7a9333a7423e12cb3} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-04T06-48-39.698325708Z--73e8655a84a37685d98891b7a9333a7423e12cb3Account #1: {a9d6dfff13c1050f19a8ffc2811c68842797d01c} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-04T06-49-00.457262369Z--a9d6dfff13c1050f19a8ffc2811c68842797d01cAccount #2: {e30cecc37776895389b94033ac65eb3b98294659} /Users/wangtao/Library/Ethereum/keystore/UTC--2016-11-05T01-35-55.852748174Z--e30cecc37776895389b94033ac65eb3b98294659localhost:~ pro1 $ 

 

我本地已经有三个了.

然后再切回已经登录成功的控制台客户端

在以太坊客户端 可以把某个帐户赋值给一个变量

> user1=eth.accounts[0]"0x73e8655a84a37685d98891b7a9333a7423e12cb3"> 

 

然后可以查看当前帐户的余额:

> eth.getBalance(user1)0> eth.blockNumber0> 

可以查看当前user1的余额为0,默认也是0个区块,因为还没有启动矿挖矿

现在我们启动挖矿,挖矿前我们先打开实时监控日志,就是刚才控制台输出的日志文本文件:

localhost:~ pro1$ geth --dev console 2>> file_to_log_output

 

这个文件我指定在了我的根目录下:  打开 

tail -f file_to_log_out

启动挖矿

> miner.start()true> 

 

在上面打开发文件监控界面就会看到 挖矿建块儿情况:

再 切回以太坊挖制台,查看用户余额:

> eth.getBalance(user1)1.25890625e+21> eth.getBalance(user2)0> 

已经看到 帐户1,已经有余额了,帐户2 还是0,因为挖矿的奖励进入第一个帐户中。

现在停止挖矿:

> miner.stop()true> 

已经停止成功,另外日志界面也停止输出

 

再 查看一下当前的区块高度:

> eth.blockNumber288> 

 

现在帐户2中没有余额,我们从帐户1转发几个以太币到 帐户2中:

> eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})account is locked    at web3.js:3119:20    at web3.js:6023:15    at web3.js:4995:36    at 
:1:1> 

由于默认帐户是锁定的,首要解锁帐户,然后再 转帐,先查看 下下当前帐户,再解锁:

> eth.accounts["0x73e8655a84a37685d98891b7a9333a7423e12cb3", "0xa9d6dfff13c1050f19a8ffc2811c68842797d01c", "0xe30cecc37776895389b94033ac65eb3b98294659"]> personal.unlockAccount('0x73e8655a84a37685d98891b7a9333a7423e12cb3','11111111')true> 

 

上面已经提示解锁成功,然后继教转帐:

> eth.sendTransaction({from: user1,to: user2,value: web3.toWei(3,"ether")})"0x8f164a1296b618bdd64fcc007f6d39ce022b57e257beefeb76288cdef220ad80"> eth.getBalance(user2)0> 

上面已经提示转帐成功了,但是user2帐户余额依然是0,是因为没有矿工来挖矿处理,我们启动一个矿工,并在另一个终端查看日志

 

日志已经显示开始挖矿并发交易进行了处理在,区块293中,

> miner.start()true> miner.stop()true> eth.getBalance(user2)3000000000000000000> 

 

我们再 次查看余额的时候user2已经 有三个以太币了,这样一个转帐的交易就完成 了;

 

已经是在本地开发环境的方式 ,我看网上还有自己初始化环境的。初始化json文件,来改变监听端口的方式来建立自己的区块链系统,这种方式只是初始化方式不同,开发方式类似。有兴趣可以搜索一下看看

 

 

 

 

 

转载于:https://my.oschina.net/wtsoftware/blog/782057

你可能感兴趣的文章
数据库泵(expdp/impdp)导入导出流程
查看>>
STM8S 串口应用 UART2 STM8S105
查看>>
ant 构建时遇到 “非法字符: \65279”的解决办法
查看>>
AES算法介绍
查看>>
数据库实例: STOREBOOK > 用户 > 编辑 用户: PUBLIC
查看>>
莫比乌斯反演学习【莫比乌斯反演】
查看>>
c#socket编程基础
查看>>
WORKAREA_SIZE_POLICY参数引起的ORA-04030错误
查看>>
C#正则表达式通过HTML提取网页中的图片src
查看>>
myloader恢复mysql数据库示例
查看>>
[20170204]dg环境修改sys口令.txt
查看>>
宏定义
查看>>
[20171117]参数filesystemio_options.txt
查看>>
Git Config(转)
查看>>
解读ASP.NET 5 & MVC6系列(10):Controller与Action
查看>>
docker学习(1) 安装
查看>>
我的友情链接
查看>>
Java集合:Set接口总结
查看>>
linux日志信息
查看>>
本地搭建Discuz论坛系统
查看>>