区块链(私有链搭建和实现)
一、实验目的
(1) 掌握区块链原理。
(2) 掌握私有链的搭建。
二、实验设计
1、go语言环境搭建
(1)sudo su命令
apt install golang-go//升级或者安装go
(2)go version//查看版本
- 安装geth
(1)apt-get install software-properties-common//安装开发工具包
(2)add-apt-repository -y ppa:ethereum/ethereum
(3)apt-get updata//升级
(4)apt-get install ethereum//安装以太坊钱包
(5)geth version//查看版本
- 创建区块
(1)先创建了ethereum文件,再ethereum文件下又创建了genesis.json
(2)genesis.json下的内容:
(3)打开得到:
- 克隆三台虚拟机并ping
(1)直接点击已经创建好的虚拟机的管理中找到克隆,点击克隆等待其克隆好就行:
(2)打开编辑的虚拟网络编辑器:
(3)在上一步打开的虚拟网络编辑器中找到如下部分后开始修改IP,点击应用:
(4)在虚拟机中找到有限设置,填入相关地址,子网掩码和网关:
(5)在虚拟机的终端下达指令geth --port 3000 --networkid 666 --datadir="data" --maxpeers=3 --http --http.port 8545 --http.addr xxxxxx --http.corsdomain "*" --http.api "db,eth,web3,personal,admin,txpool" console --allow-insecure-unlock
另一台虚拟机只需要在此基础上将8545改成8546,128改为129即可()就是让它们不同而已:
(另外一台虚拟机同理ping)
5、开始准备挖矿:
(1)首先需要创建用户名,我们以128为例:
(2)下达指令miner.start(1)开始挖矿:
进行中:
- 下达指令miner.stop()停止挖矿:
(4)下达指令personal.unlockAccount(eth.accounts[0])解锁钱包:
(5)分别下达指令amount=web3.toWei(1,'ether') 和eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[1],value:amount})进行交易:
最后查看钱包中是否发生变化即可;
三、实验记录
在实验过程中,我遇到了诸多问题,最开始在实验室的时候用得是kali的linux,发现操作困难,然后经老师提醒后使用了Ubuntu后发现就非常顺畅了;
其次在三台虚拟机ping起来的时候由于不了解子网掩码和IP等操作,查阅了网上大量资料以及学长学姐们的模板终于调成功了。
四、实验思考或体会
通过实验,我理解了设计区块私有链的搭建,在此过程中,我对Linux终端命令操作从不知道到已经逐渐了解并产生了兴趣;
然后就是虚拟机的ping操作让我受益匪浅,在ping的时候要修改他们的ip,网关,子网掩码,使他们在同一局域网;