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

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

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



关于作者


作者介绍


🍊 博客主页:作者主页

🍊 简介:云计算领域优质创作者🏆、在校期间参与众多计算机相关的省赛、国赛,斩获系列荣誉。考取华为资深工程师、红帽工程师等系列认证。


🍊 关注我:简历模板、学习资料、文档下载、技术支持 都可以私信我哦!

让生命像一团热烈燃烧的火,直到死亡才能使它熄灭


一、实验目的


  • 实验目的


# 掌握比特币客户端BitcoinCore的基本原理知识
# 掌握比特币客户端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=<dir>”标记配置文件的路径,再承接要发送的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 实验环境说明


  • 使用环境


image.png


  • 软件下载地址:bitcoin-core-0.15.2


image.png


5.2 软件安装


  • 安装介绍


# 这里正常安装吧,没事要说明的,可以安装C盘,也可以安装其他盘。
# 注意下宿主机是否 关闭防火墙


5.3 配置环境变量


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


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


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


image.png


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


  • 进入命令行


image.png


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


  • bitcoind -version


image.png


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


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


image.png


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


image.png


# 多了一个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.准备实验目录及文件


image.png


  • 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)


5.7.3 调用3次cmd ,分别运行以下命令


  • 1.将alice 节点运行


# bitcoind -conf=%APPDATA%\Bitcoin\alice.conf -datadir=%APPDATA%\Bitcoin\alice


  • 2.将bob 节点运行


# bitcoind -conf=%APPDATA%\Bitcoin\bob.conf -datadir=%APPDATA%\Bitcoin\bob


  • 3.将network 节点运行


# bitcoind -conf=%APPDATA%\Bitcoin\network.conf -datadir=%APPDATA%\Bitcoin\network


  • 此时,我们打开 C:\Users\hbs\AppData\Roaming\bitcoin\ 目录下的任何一个目录(alice、bob、network),里面都有一个regtest的目录,里面类容是一样的



image.png


5.7.4 查看3个节点连接正常的信息


  • 随机打开一个目录,查看debug


image.png


总结



初次环境搭建不难,只需要安装步骤去做即可,然后我们的实验一就完成了。写作不易,支持原创。欢迎读者点赞、收藏


相关文章
|
1天前
|
供应链 安全 网络安全
区块链技术与网络安全:机遇与挑战
区块链技术与网络安全:机遇与挑战
14 2
|
2天前
|
供应链 区块链
深入探索区块链技术在供应链管理中的应用
本文通过分析区块链的基本概念、技术特性及其在供应链管理中的创新应用,探讨了区块链技术如何提高供应链的透明度、效率和安全性。文章首先介绍了区块链的定义及工作原理,随后详细阐述了区块链在供应链中的具体应用场景,包括数据共享、货物追踪、合同执行等方面。最后,文章讨论了区块链技术面临的挑战和未来发展趋势,为供应链管理领域提供了新的视角和技术解决方案。
|
2天前
|
供应链 分布式数据库 区块链
深度探索:区块链技术在供应链管理中的应用与优化####
【10月更文挑战第29天】 本文深入剖析了区块链技术如何革新供应链管理,通过构建去中心化的信任机制,显著提升透明度、效率及安全性。我们将探讨区块链在追踪产品来源、简化交易流程、增强数据安全等方面的具体应用实例,并分析其面临的挑战与未来发展趋势,为相关领域提供有价值的参考与启示。 ####
20 2
|
3天前
|
存储 供应链 安全
重塑信任:区块链技术如何打造数字世界的全新安全生态
【10月更文挑战第32天】区块链技术自比特币诞生以来,以其去中心化特性吸引了全球关注。本文通过最佳实践探讨区块链如何重塑数字世界的信任体系,包括保障数据真实性、身份验证与隐私保护以及提升投票系统的安全性和透明度。通过智能合约示例,展示了区块链在供应链管理、身份管理和投票系统中的应用。区块链技术正推动各行各业的创新与发展。
13 2
|
4天前
|
供应链 安全 物联网
深入浅出:区块链技术及其应用
【10月更文挑战第29天】 本文旨在为读者提供一个关于区块链技术的全面介绍,包括其基本原理、发展历程以及在多个领域的实际应用。通过本文,您将能够理解区块链不仅仅是一种技术,更是一种可能改变未来社会运作方式的理念。我们将探讨区块链如何从加密货币的基础扩展到供应链管理、智能合约、身份验证等众多领域,并分析它面临的挑战与机遇。
15 2
|
3天前
|
存储 供应链 安全
深入探讨区块链技术在数据安全中的应用
本文旨在探讨区块链技术在数据安全领域的应用,分析其如何通过去中心化的特性增强数据的安全性和透明度。文章首先介绍区块链的基本原理,然后详细阐述其在防止数据篡改、提高交易安全性以及实现数据共享方面的优势。最后,文章讨论了当前区块链技术面临的挑战和未来的发展趋势。
|
6天前
|
供应链 区块链
探索区块链技术在供应链管理中的应用
【10月更文挑战第28天】 本文深入探讨了区块链技术如何革新传统的供应链管理系统,通过提供一个去中心化、透明且不可篡改的数据记录平台,来增强整个供应链的透明度和效率。文章首先介绍了区块链技术的基本原理及其核心特性,随后分析了当前供应链管理面临的主要挑战,并详细讨论了区块链技术在解决这些问题中的潜在作用。通过具体案例分析,本文展示了区块链技术在实际供应链管理中的应用效果,包括提高数据透明度、降低运营成本、增强供应链各环节之间的信任等方面。最后,文章还探讨了实施区块链解决方案时可能遇到的技术与非技术障碍,并对未来区块链技术在供应链领域的发展趋势进行了展望。
33 2
|
4天前
|
存储 供应链 区块链
区块链技术在供应链管理中的应用与挑战
本文深入探讨了区块链技术在现代供应链管理中的应用,分析了其如何通过提供透明度、增强安全性和提高效率来革新传统供应链。文章首先概述了区块链的基本原理及其对供应链的潜在影响,随后详细讨论了区块链在供应链中的具体应用案例,包括货物追踪、库存管理和支付处理。此外,文章还探讨了实施区块链技术时面临的主要挑战,如技术集成、数据隐私和监管问题。最后,文章提出了一系列策略和建议,旨在帮助企业克服这些挑战,充分利用区块链技术优化供应链管理。
|
19天前
|
存储 供应链 物联网
探索未来:区块链、物联网与虚拟现实技术的融合与创新
【10月更文挑战第15天】本文深入探讨了新兴技术如区块链、物联网(IoT)和虚拟现实(VR)的发展趋势及其在现代社会的应用。通过分析这些技术的独特属性和它们如何相互补充,我们揭示了一个由高度互联、智能化和沉浸式体验定义的未来图景。文章不仅讨论了这些技术当前的挑战,还展望了它们在未来可能带来的转变,旨在为读者提供对这些令人兴奋的技术趋势的全面理解。
|
12天前
|
存储 安全 分布式数据库
探索区块链技术在数据安全中的应用
【10月更文挑战第21天】 本文深入探讨了区块链技术在增强数据安全性方面的应用。通过对区块链基本原理的解释,结合其在数据存储、传输和访问控制中的具体实现方式,本文揭示了区块链技术如何有效防止数据篡改和未授权访问。此外,文章还讨论了区块链技术面临的挑战及其未来发展趋势,为读者提供了一个全面了解区块链技术在数据安全领域应用的视角。
37 4