区块链技术与应用实验报告(实验一)

本文详细介绍了如何在Windows和Linux环境下安装和配置BitcoinCore客户端,包括bitcoin-qt、bitcoind和bitcoin-cli的使用,以及回归测试网络的搭建和命令行操作。重点讲解了区块链基础知识和实验环境部署步骤。
摘要由CSDN通过智能技术生成

掌握比特币客户端BitcoinCore的安装与配置方法

二、实验原理简介


  • 实验简介

bitcoin Core是比特币官方开发的节点客户端,提供了成为全节点所需的全面功能,并为比特币的开发、测试和实际运行提供了友好的工具,包含3个主要程序。

(1) bitcoin-qt: 封装了完整的比特币全节点,并提供了一个带有GUI的钱包程序,可以实现交易数据可视化。钱包的“帮助”菜单中提供了控制台,以发布多类RPC命令,对普通用户更加友好。

(2) bitcoind:提供了一个轻量级的封装好的比特币全节点,在部署后,可以通过向其发布RPC命令与之交互,对开发者更加友好。

(3) bitcoin-cli:提供了通过命令行全节点发送RPC命令的功能,一般用于与bitcoind配合进行调试。

借助前面建立的回归测试网络,可以采用bitcoin-cli向相关节点发布RPC命令与测试链进行交互。新打开一个命令行,输入如下命令,查看工具的使用方法。

bitcoin-cli –h

在每次使用bitcoin-cli时,同样需要使用”-datadir=

”标记配置文件的路径,再承接要发送的RPC命令。例如,对于节点alice,我们希望查询其视角内与之相连的节点信息,则应该输入:

bitcoin-cli –datadir=%appdata%\bitocin\alic\ getpeerinfo

三、实验环境


  • 实验环境

实验环境

本实验在PC机上即可进行,操作系统可以是Windows10或Linux。注意,在Linux系统中实验的部署方法类似甚至更方便,增加了对于-daemon命令(后台运行)的支持。

这里使用 windows 平台做演示

windows 10 专业版

四、区块链基础概念


4.1 区块链简介

  • 2008年 11月 日裔美国人 —比特币的开发者兼创始者 中本聪 发表 比特币白皮书 ,提出了区块链的概念

  • 区块链是 一种分布式共享账本 技术,记录了资产转移的过程、交易数据,具有数据库相似功能

  • 它是一种点对点的关系,本质上是 去中心化、分布式的,主要1.0和2.0两个阶段

  • 区块链的特点:去中心化、防篡改、防丢失、易溯源

  • 区块链的关键技术:

  • 共识机制:

  • Pow:工作量证明

  • PoS:权益证明

  • DPoS:委任权益证明

  • PBFT:实用拜占庭容错算法

  • 智能合约:

  • 安全技术:

  • 哈希算法

  • 非对称加密算法(RSA、ECC)

  • 数据库存储:

  • 组网技术:

  • 其它主流区块链平台:以太坊、超级账本、Corda、梧桐链

4.2 比特币简介

  • 比特币 是区块链最成功的、最重要的应用

  • 比特币是 基于密码学和 经济博弈的 一种数字加密货币,也是历史上首个经过 大规模长时间运作检验的虚拟货币系统。

  • 算法处理流程:挖矿和 记账的过程

  • 比特币 官网:官网

五、实验环境部署


5.1 实验环境说明

  • 使用环境

| 操作系统 | 软件版本 |

| — | — |

| windows 10 专业版 | bitcoin-core-0.15.2 |

5.2 软件安装

  • 安装介绍

这里正常安装吧,没事要说明的,可以安装C盘,也可以安装其他盘。

注意下宿主机是否 关闭防火墙

5.3 配置环境变量

  • 打开你安装的路径,然后复制路径

  • 点击此电脑、右键属性、高级系统设置、环境变量、找到 系统变量(S)里的PATH、后面输入;你安装的路径如:;D:\bitcoin\daemon

  • 或者参考下图配置环境变量。

  • 在这里插入图片描述

5.4 win+R,输入cmd,回车进入命令行

  • 进入命令行

  • 在这里插入图片描述

5.5 输入 bitcoind -version 测试是否安装成功

  • bitcoind -version

  • 在这里插入图片描述

5.6 打开创建一个记事本,输入内容 regtest=1,保存xx.conf

  • 1.先查看 bitcoin 安装目录在哪

  • 在这里插入图片描述

  • 2. 尝试打开以上路径,新建文件bitcoin.conf,通过文本编辑器编辑,在文件第1行添加“regtest=1”,保存后调出CMD命令行,运行“bitcoind”命令,观察daemon文件夹的变化。

  • 在这里插入图片描述

多了一个regtest 的目录,同时文件和bitcoin 目录文件一样的

5. 7 创建三个节点,同时运行,进行通信

5.7.1 配置文件 xx.conf 介绍
  • 相关参数:

regtest=1

开启回归测试网络的关键命令,若遗漏,则会自动连入主网,开始同步高达GB的区块数据。

port=XXXX

这条命令用来配置节点连接时使用的网络端口,回归测试下默认为18444。如果设置多个节点同时运行,则需要自定义配置不同的端口,尽量避免与系统已有的服务发生冲突。

connect=ip:port和addnode=ip:port

二者都是手动添加已知节点的手段,区别是:connect命令配置后,节点将只从配置的特定地址接收数据,拒绝其他节点的连接,而addnode命令没有此类限制。Addnode命令的IP地址在回归测试中一般设定为系统默认回送地址,即127.0.0.1。

server=0/1

这条命令用来配置节点是否作为服务节点,即是否接受RPC命令,默认值为1,因此不用额外配置。

rpcport=XXXX

这条命令配置RPC命令的监听端口。同样,如果设置多个节点同时运行,则需要自定义配置不同的端口,尽量避免与系统已有的服务发生冲突。

rpcuser=XXXXhe rpcpassword=XXX

这条命令用来设定RPC的访问用户名和密码,是安全使用RPC命令的必备命令。即使是节点也不会希望自己的客户端莫名接受了他人的命令,从而失去钱包中的所有代币。

配合以上命令,在回归测试网络中建立3个节点:alice、bob、network,并使它们相互连接,可以进行交互。

5.7.2 此时实验准备的配置文件
  • 1.准备实验目录及文件

  • 在这里插入图片描述

  • alice.conf 内容

regtest=1

port=22222

rpcport=18332

addnode=127.0.0.1:22224

addnode=127.0.0.1:22226

  • bob.conf 文件内容

regtest=1

port=22224

rpcport=18334

addnode=127.0.0.1:22222

addnode=127.0.0.1:22226

  • network 文件内容

regtest=1

port=22226

rpcport=18336

addnode=127.0.0.1:22222

addnode=127.0.0.1:22224

  • 2.删除之前的bitcoin 目录,将准好好的文件目录复制到安装目录(C:\Users\hbs\AppData\Roaming)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

小编精心为大家准备了一手资料

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

BATJ面试要点及Java架构师进阶资料

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
[外链图片转存中…(img-RqzLG0JY-1713552426893)]

以上Java高级架构资料、源码、笔记、视频。Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

【附】架构书籍

  1. BAT面试的20道高频数据库问题解析
  2. Java面试宝典
  3. Netty实战
  4. 算法

[外链图片转存中…(img-BEm39vzk-1713552426893)]

BATJ面试要点及Java架构师进阶资料

[外链图片转存中…(img-pFus3BjF-1713552426894)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 54
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值