# 基于区块链的物流信息存储系统
# 一、介绍:
区块链(不是比特币,请大家辩证看待)是一种数据结构
介绍视频 1
介绍视频 2
如果有时间,也可系统性学习北大课程:
# 二、任务:
1~2 人一组(在本文档顶部注明分工)
完成基于区块链的物流信息存储系统(下图为示意图,仅供参考)
参考链接 1
完成本文档后面的项目说明
课程期间全程参加钉钉会议,不定时随机点名共享屏幕讲解进度 12 日 24:00 前将整个项目代码和本文档提交至钉钉群
思考下列开放式问题,形成自己的观点,并写在文档末尾:
是不是万物皆可区块链,区块链到底能用来做什么?
◆ 参考链接 1
区块链能真正做到去中心化吗?
区块链能真正做到不可篡改吗?
更多问题可自行发挥 …
![](https://www.writebug.com/myres/static/uploads/2022/9/13/22b794f4b6c6514eda9c5902f8e6c37d.writebug)
项目说明
| 功能/特性 |说明 |分值 |备注(请在此备注是否完成,及其他信息) |
|----|----|----|----|
| 基础 |必选 | | |
| |文档内容充实、排版美观 |5 |完成 |
| |无编译错误,可顺利运行 |5 |完成 |
| C++ |必选 | | |
| |多文件结构 |10 |完成 |
| |面向对象(类和继承) |10 |完成 |
| |设计合理(需在文档中说明) |10 |完成 |
| 区块链 |必选 | | |
| |具备区块链基础功能 |10 |完成 |
| |对区块链的思考 |10 |完成 |
| 区块链++ |可选 |30 | |
| |去中心化 | |完成(分布式账本) |
| |数据安全 | |完成(挖矿机制) |
| |不可篡改 | |完成(GHOST 协议) |
| |可溯源 | |完成 |
| |轻节点 | |完成 |
| |… | | |
| 汇报 |在线做演示和汇报 |10 |完成 |
C++学期
### 简介
模型说明挖矿机制
GHOST协议主要构成帐户账户状态世界状态物品费区块
### 轻量级区块
作量证明挖矿挖矿作为安全机制
挖矿作为财富分配机制系统测试思考问题区块链能真正做到去中化吗?区块链是分布式数据库吗?区块链真的不可篡改吗?
# 三、模型说明
该项本质就是个基于交易的状态机(transaction-based state machine)。在计算机科学中,个状态机是指可以读取系列的输,然后根据这些输,会转换成个新的状态出来的东。该状态机如下:
根据该项的状态机,我们从创世纪状态开始,当交易被执后,这个创世纪状态就会转变成最终状态。在任何时刻,这个最终状态都代表着当前的状态,在项中指针 Bptr永远指向最新的状态。每个状态可能包含数个物流信息。这些信息都被“组团”到个区块中。个区块包含了系列的物流信息,每个区块都与它的前个区块链接起来。
![](https://www.writebug.com/myres/static/uploads/2022/9/13/283561d44287b989037ee791c09864dd.writebug)
## 3.1 挖矿机制
为了让个状态转换成下个状态,交易必须是有效的。为了让个交易被认为是有效的,它必须要经过个验证过程,此过程也就是挖矿。挖矿就是组节点它们的计算资源来创建个包含有效交易的区块出来。
任何在络上宣称是矿的节点都可以尝试创建和验证区块。很多矿都在同时间创建和验证区块。每个矿在提交个区块到区块链上的时候都会提供个数学机制的“证明”,这个证明就像个保证:如果这个证明存在,那么这个区块定是有效的。为了让个区块添加到主链上,个矿必须要其他矿更快的提供出这个“证明”。通过矿提供的个数学机制的“证明”来证实每个区块的过程称之为作量证明(proof of work)。
证实了个新区块的矿都会被奖励定价值的奖赏该项使种内在数字代币作为奖赏。每次矿证明了个新区块,那么就会产个新的货币并被奖励给矿。
## 3.2 GHOST协议
为了保障数据的安全性以及可靠性,本项也采了GHOST协议(Greedy Heaviest Observed Subtree)。简单来说,GHOST协议就是让我们必须选择个在其上完成计算最多的路径。个法确定路径就是使最近个区块的区块号,区块号代表着当前路径上总的区块数。区块号越,路径就会越,就说明越多的挖矿算被消耗在此路径上以达到叶区块。使这种推理就可以允许我们赞同当前状态的权威版本。
![](https://www.writebug.com/myres/static/uploads/2022/9/13/4218f3dcf36c418c80661030aa2d92b2.writebug)
### 3.2.1 主要构成
该项主要有以下的部分组成:
- 账户(accounts)
- 状态(state)
- 费(gas)
- 交易(transactions)
- 区块(blocks)
- 交易执(transaction execution)
- 挖矿(mining)
- 作量证明(proof of work)
# 四、帐户
该项的全局“共享状态”是有很多对象来组成的,这些账户可以通过消息传递架构来与对进交互。其中分为普通帐户和矿,普通帐户只具备交易功能,矿户可以挖矿获得报酬。另外,在普通户中分为全节点户和轻节点户,全节点户是将所有的区块链进存储,轻节点户只将Merkle树的头节点哈希值进存储,为什么只存储哈希值呢?这会在后的部分进详细讲解。
![](https://www.writebug.com/myres/static/uploads/2022/9/13/2beb88e16f1d30536f7eb9ad11542f60.writebug)
## 4.1 账户状态
账户状态有三个组成部分,不论账户类型是什么,都存在这三个组成部分:
- nonce:从此账户地址发送的交易序号。
- balance: 此地址拥有货币的数量。
- storageRoot: Merkle树的根节点Hash值。
## 4.2 世界状态
Merkle Tree(也被叫做Merkle trie)是种由系列节点组成的叉树,这些节点包括:
在树的最底层的包含了源数据的量叶节点系列的中间的节点,这些节点是两个节点的Hash值几个根节点,同样是两个节点的Hash值,代表着整棵树
![](https://www.writebug.com/myres/static/uploads/2022/9/13/768a6f5e2c5685027e81d6439fc90d8e.writebug)
同样的树结构也来存储交易和物品信息。更具体的说,每个块都保存了三个不同
Merkle树结构的根节点的Hash,包括:
- 状态树
- 物品树
- 交易树
在Merkle树中存储所有信息的效性在轻节点中相当的有。区块链就是群节点来维持的。泛的说,有两种节点类型:全节点和轻节点。
全节点通过下载整条链来进同步,从创世纪块到当前块,执其中包含的所有交易。矿会存储全节点,因为他们在挖矿过程中需要全节点。也有可能下载个全节点不执所有的交易。论如何,个全节点包含了整个链。
不过除个节点需要执所有的交易或轻松访问历史数据,不然没必要保存整条链。这就是轻节点概念的来源。起下载和存储整个链以及执其中所有的交易,轻节点仅仅下载链的头,从创世纪块到当前块的头,不执任何的交易或检索任何相关联的状态。由于轻节点可以访问块的头,头中包含了3个树的Hash,所有轻节点依然可以很容易成和接收关于交易、事件、余额等可验证的答案。
这个可以的通是因为在Merkle树中hash值是向上传播的—如果个恶意户试图个假交易来交换Merkle树底的交易,这个会改变它上节点的hash值,它上节点的值的改变也会导致上上个节点Hash值的改变,以此类推,直到树的根节点。
物品物品的设计结构如下:
户可以创建物品、对物品进加,同时户可以交易该物品到其他户,在该项中每步操作都会被记录到产品信息中,同�
没有合适的资源?快使用搜索试试~ 我知道了~
基于C++ 实现的(控制台)区块链的物流信息存储系统【100011694】
共10个文件
cpp:4个
h:3个
pdf:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 71 浏览量
2023-04-07
14:29:27
上传
评论
收藏 588KB ZIP 举报
温馨提示
根据该项的状态机,我们从创世纪状态开始,当交易被执后,这个创世纪状态就会转变成最终状态。在任何时刻,这个最终状态都代表着当前的状态,在项中指针 Bptr永远指向最新的状态。每个状态可能包含数个物流信息。这些信息都被“组团”到个区块中。个区块包含了系列的物流信息,每个区块都与它的前个区块链接起来。
资源推荐
资源详情
资源评论
收起资源包目录
100011694-基于C++ 实现的(控制台)区块链的物流信息存储系统.zip (10个子文件)
1345308560
1131190111-唐川淇-1131190112-刘玉鹏-短学期.pdf 1MB
MyBlockChain.cpp 90B
LICENSE 1KB
md5.h 3KB
BlockChain.h 4KB
BlockChainSys.h 872B
md5.cpp 7KB
BlockChain.cpp 3KB
README.md 14KB
BlockChainSys.cpp 6KB
共 10 条
- 1
资源评论
神仙别闹
- 粉丝: 2668
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功