当前位置: 首页 > news >正文

区块链(私有链搭建和实现)

一、实验目的

(1) 掌握区块链原理。

(2) 掌握私有链的搭建。

二、实验设计

1、go语言环境搭建

(1)sudo su命令

apt install golang-go//升级或者安装go

(2)go version//查看版本

  1. 安装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. 创建区块

(1)先创建了ethereum文件,再ethereum文件下又创建了genesis.json

(2)genesis.json下的内容:

(3)打开得到:

  1. 克隆三台虚拟机并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)开始挖矿:

进行中:

  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,网关,子网掩码,使他们在同一局域网;

http://www.dtcms.com/a/265834.html

相关文章:

  • 【C++】访问者模式
  • PHP语法基础篇(八):超全局变量
  • 鸿蒙应用开发:从网络获取数据
  • UE5中的AnimNotify
  • KDD 2025 | 地理定位中的群体智能:一个多智能体大型视觉语言模型协同框架
  • rabbitmq 与 Erlang 的版本对照表 win10 安装方法
  • SPLADE 在稀疏向量搜索中的原理与应用详解
  • MCP 传输机制(Streamable HTTP)
  • 多线程知识
  • 21、MQ常见问题梳理
  • 映射阿里云OSS(对象存储服务)
  • [创业之路-467]:企业经营层 - 《营销管理》的主要内容、核心思想以及对创业者的启示
  • 【Spring boot】tomcat Jetty Undertow对比,以及应用场景
  • Qt 事件
  • 医科+AI!和鲸支持南京医科大学医学数据挖掘课程实践教学落地
  • CCLinkIE转EtherCAT:食品产线测厚仪的“精准心跳”如何跳动?
  • 重学React(二):添加交互
  • 运维服务部中级服务工程师面试试题
  • 【Spring篇09】:制作自己的spring-boot-starter依赖1
  • 服务器如何配置防火墙规则开放/关闭端口?
  • ROS2---话题重映射
  • 能生成二维码的浏览器插件来了
  • 模型训练复习
  • RabbitMQ 高级特性之发送方确认
  • 12、jvm运行期优化
  • .Net Core 中RabbitMQ基本使用
  • [自然语言处理]计算语言的熵
  • 【Python办公】Excel转CSV文件(可指定拆分行数\可批量或单个)
  • 用C#编写一个读取磁盘第一扇区的程序
  • 架空线路云台监控系统应对线路故障的智能化解决方案