免责声明:凤梨财经作为开放的信息发布平台,所提供的所有内容与凤梨财经观点和立场无关,且不构成任何投资理财建议。投资有风险,入市需谨慎。

学习区块链(四百四十)

2018-09-04 阅读量 443
摘要:基于Ubuntu Docker环境下进行以太坊实践3

基于Ubuntu Docker环境下进行以太坊实践3

BLOCK COMMUNITY



4 Ethereum安装与实践

4.1 通过docker安装Ethereum

  • 运行如下命令

1
#docker pull docker.io/ethereum/client-go
4.2 直接安装Ethereum
  • 运行如下命令

1 2 3
#apt-get update


#apt-get install software-properties-common add-apt-repository -y ppa:ethereum/ethereum

  • 安装一个稳定版本的以太坊

1 2 3 4 5
#apt-get update


#apt-get install ethereum

#apt-get update

  • 生成引导节点ID

1
#bootnode --genkey=boot.key
  • 运行引导节点

1
#bootnode --nodekey=boot.key
4.3 新建genesis.json文件
  • 运行以下命令

1
vi genesis.json
  • 输入


4.4 初始化创始区块

  • 运行如下命令

1
#docker run -itd --privileged=true -v /path/docker/dev1:/root/ethdev --name gethDev1 ethereum/client-go --datadir /root/ethdev --networkid 8765639736937780 init /root/ethdev/genesis.json
4.5 创建Ethereum节点的容器
  • 运行如下命令

1 2 3
#docker rm -f gethDev1


#docker run -itd -m 512M --privileged=true --memory-swap -1 --net=host -p 8545:8545 -p 40303:40303 -v /path/docker/dev1:/root/ethdev --name gethDev1 ethereum/client-go --ipcdisable --port 40303 --bootnodes "enode://2039a49989e45bf119ecd21403607ea9f5888b13a6bb7a03ed81687deabb251095e4193a77eca067076f77ed40e4c6fd51539038c440337beffbbb36953d1d75@192.168.3.43:30301" --debug --nodiscover --rpcapi "db,eth,net,web3,personal,admin,miner,txpool" --datadir /root/ethdev --networkid 8765639736937780 --wsapi "db,eth,net,web3,personal,admin,miner,txpool" --ws --wsaddr "0.0.0.0" --rpc --rpcaddr "0.0.0.0" --cache=512 --verbosity 6 --mine --minerthreads=1 --etherbase=0x5f38056f45091ee992298e53681b0a60c999ff95 console


4.6 查看Ethereum节点docker日志

  • 运行如下命令

1
#docker logs -f gethDev1
4.7启动Ethereum节点
  • 运行如下命令

1
#docker startgethDev1
4.8 Attach Ethereum节点
  • 运行如下命令

1
#docker attach gethDev1
4.9 Detach Ethereum节点


先后按下键盘ctrl+p+q退出节点,注意:有先后顺序

4.10 停止Ethereum节点

  • 运行命令如下

1
#docker stopgethDev1
4.11 Ethereum日志释疑
  • 首先,告警提示geth抱怨没有定义etherbase,etherbase是成功挖掘区块,执行智能合约并在区块链内返回结果之后用来接收以太奖励的“默认以太坊地址”。这个帐户,在开发合同时也很方便。

  • 接下来,我们看到blockchain数据被写入/root/.ethereum/chaindata,因为我们已经从我们的主机挂载了这个目录,我们应该可以在本地磁盘上看到出现的数据:

  • docker exec –i ethereum geth account new ls –l /opt/docker/ethereum/keystore/. docker exec ethereum apt-get install –y ntpdate docker exec ethereum ntpdate –s ntp.ubuntu.com

在当前配置中,我们有一个可以挂载到我们的容器中的以太坊数据目录。这不是因为区块链数据只能在任何情况下由一个进程访问,而是访问可由Ethereum节点用于进程间通信的IPC文件描述符。因此,我们可以在这里继续,而不需要访问网络。


5 zsh小工具推荐

zsh是一款小工具,对命令补全功能非常强大,可以补齐路径,补齐命令,补齐参数等。

5.1 修改root用户SHELL

先进入root用户,命令:


1
su root
查看默认SHELL命令:



1
echo $SHELL
然后查看是否安装了zsh,命令:



1
cat /etc/shells
默认没有安装,那么先安装zsh,命令:



1
apt-get install zsh
确认zsh是否安装成功,命令:



1
zsh --version
接下来替换bash为zsh,命令:



1
chsh -s /bin/zsh
然后reboot重启,之后查看默认SHELL,发现修改为/bin/zsh


查看是否安装git,命令:


1
git –version


如果没有安装则安装,命令:



1
apt-get install git


最后下载oh-my-zsh,命令:



1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


出现如上则安装成功,重新进入终端即可。

5.2 修改普通用户SHELL

查看默认SHELL,命令:


1
echo $SHELL


如果是/bin/zsh则直接:



1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
是/bin/bash则,切换:



1
chsh -s /bin/zsh


然后用root权限reboot,然后:



1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
安装成功后可以(vi ~/.zshrc)来修改配置文件以改变样式(注意root和非root都要改,可以选择不一样的样式)。


root的样式配置文件在根目录root下,为隐藏文件;非root在/home/root下。

具体样式选择https://github.com/robbyrussell/oh-my-zsh/wiki/themes



·END·
 

区块公社

欢迎加入开发者社区

与技术大咖一起成长
声明:本文观点仅代表作者本人,不代表凤梨财经赞同或证实其观点描述。如若侵权,请联系我们删除文章。