专栏名称: 区块链技术学习
致力于区块链技术的学习和普及,对区块链技术和相关企业事件进行深度分析和研判,探索去中心化账本技术应用领域。
目录
相关文章推荐
梅特涅的信徒  ·  美国右翼因特朗普与马斯克的政策分歧显现裂痕 ·  昨天  
临沂新闻  ·  听!临沂新闻|2025年2月23日 ·  2 天前  
格上财富  ·  国家顶级规划,怎样给大城市“划重点”? ·  3 天前  
媒哥媒体招聘  ·  影视头部宣传公司多岗招聘,带薪进组追星! ·  3 天前  
媒哥媒体招聘  ·  丝芭传媒招聘! ·  4 天前  
51好读  ›  专栏  ›  区块链技术学习

以太坊私链的搭建,以及Mist钱包的使用

区块链技术学习  · 公众号  ·  · 2019-06-11 12:30

正文

来自:博客园 ,作者:AlphaGL

链接:https://www.cnblogs.com/alphagl/p/10025527.html


以太坊作为第二代区块链技术,相比"中本聪"第一代区块链技术比特币,拥有更快的交易确认时间,比特币每笔平均10分钟,以太坊只要18秒左右(EOS为0.5秒,还免手续费)。同时,以太坊自带图灵完备的智能合约编程语言(Solidity),运行在以太坊虚拟机上,拥有更大的灵活性,基于以太坊的Dapp和游戏也越来越多。


以太坊主链上发行的代币成为以太币(ether),用来支付交易的手续费。在主链上部署智能合约之前,我们可以先搭一个以太坊私链环境,用来测试和部署合约,避免不必要的损失。其中,以太币有如下单位:


1 ether = 10^18 wei

1 ether = 10^15 Kwei,1 1Kwei   = 10^3 wei

1 ether = 10^12 Mwei,1 Mwei   = 10^6 wei

1 ether = 10^9  Gwei,1 Gwei   = 10^9 wei

1 ether = 10^6 szabo,1 szabo  = 10^12 wei

1 ether = 10^3 finney,1 finney = 10^15 wei


1、私链环境搭建


操作系统:Ubuntu 18.04


1.1 下载Geth


虽然,以太坊的实现有很多语言的版本(ethereum-github),但官方推荐使用Go的实现,所以这里直接下载go-ethereum,可以直接下载源码翻译安装,也可以直接下载编译好的可执行文件。


下载地址:

https://gethstore.blob.core.windows.net/builds/geth-linux-amd64-1.8.18-58632d44.tar.gz


然后,解压安装即可:



1.2 初始化创世块


(1)新建一个目录,用来存放创世块数据:



(2)新建genesis.json创世块配置文件:



{
  "config": {
        "chainId"0,
        "homesteadBlock"0,
        "eip155Block"0,
        "eip158Block"0
    },
  "alloc"      : {},
  "coinbase"   : "0x0000000000000000000000000000000000000000",
  "difficulty" : "0x20000",
  "extraData"  : "",
  "gasLimit"   : "0x2fefd8",
  "nonce"      : "0x0000000000000042",
  "mixhash"    : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
  "timestamp"  : "0x00"
}


注:genesis.json来自于https://github.com/ethereum/go-ethereum


(3)初始化创世块



1.3 启动私链节点


(1)在终端执行以下命令:


sudo geth --networkid 123 --dev --datadir chain --rpc --rpcapi "personal,db,eth,net,web3,miner,admin,debug" --rpcaddr "0.0.0.0" --rpcport 8545 --port 30303 --rpccorsdomain "*" --nodiscover



参数介绍:


networkid: 网络id。(默认值为1)

1:Frontier(主网络)

2:Morden(忽略)

3:Ropsten(测试网络)

4:Rinkeby(测试网络)


dev: 开发模式。包含一个预含以太币的开发者账号。


datadir: 指定数据库和密钥存放的路径。


rpc: 是否开启HTTP-RPC。


rpcapi: 指定哪些HTTP-RPC提供的API接口可用。


rpcaddr: 指定HTTP-RPC监听的地址。默认是:localhost。


rpcport: 指定HTTP-RPC监听的端口。默认是:8545。


port: 网络监听端口,用于与其它节点通信。默认是:30303。


rpccorsdomain: 指定哪些URL可以跨域访问节点。


nodiscover: 关闭节点发现。


注:这里没有开启自动挖矿(--dev.period参数),也没有使用websocket的方式访问。更多参数的含义参考geth --help。


2. 连接到私链


2.1 使用mist钱包连接到本地私链


(1)下载Mist钱包


https://github.com/ethereum/mist/releases


(2)解压Mist钱包


unzip Mist-linux64-0-11-1.zip -d ./Mist


(3)使用Mist连接到私链


sudo ./mist --rpc ./../chain/geth.ipc



如遇到以下错误:

error while loading shared libraries:libgconf-2.so.4:cannot open shared object file:No such file or directory


则需安装 libgconf 库,执行

sudo apt install libgconf-2-4 :


(4)解决上述错误,再次执行步骤(3)会成功打开Mist钱包,并看到一个包含 1.1579e+77 个以太币的帐号。


2.2 使用MetaMask钱包连接到本地私链


(1)下载并安装MetaMask钱包
步骤略。(这里安装MetaMask钱包,可能需要***,自行解决。浏览器使用Chrome)


(2)连接到本地节点
当然,MetaMask也可以不与节点装在同一台机器上,则选择
Custom RPC ,然后配置相应的ip和端口即可。



3. Geth控制台


3.1 Web3命令的使用


(1) 进入Geth控制台


sudo geth attach ./chain/geth.ipc  
这里也可以使用HTTP接口的方式:  
sudo geth attach http://127.0.0.1



3.2 交易


(1)创建新帐号,并返回新帐号的地址


personal.newAccount("123456")


(2)查询帐号,默认有一个帐号加上新创建,因此,总共看到两个地址 。


personal






请到「今天看啥」查看全文