°

python开发区块链用到的数据结构

PHP实战视频教程大全

学到这里我们对于区块链已经有所了解了

区块链就是一个个数据区块通过加密串关联形成的数据区块链条

每个区块都可以看做一个储存数据的盒子,这个盒子里的数据大致可以分为两类,元数据和交易数据

其中元数据是描述区块的主要数据,在验证区块的时候有重要作用

区块中的普通交易数据,其实就是一组交易数据,我们说是一组,而不是一条,所以一个区块里面可以包含多条交易信息数据

就像比特币的区块一样,一个区块可以包含多个交易记录,而且只有当这些交易记录被包含在一个区块中的时候,我们才会认为,这些交易是被处理过了的

我们来看看,一条交易记录的样子:

可以看到一条记录里面一般含所有 sender recipient amount 这些数据

因为这些数据对于描述一次交易来说非常重要

一组记录中包含多条交易信息

比如刚刚开始的时候我们的这些交易信息还没有被处理,这些交易的资金还没有从发送者发给接收者,但是最终,这些未完成的交易记录会被一个新的区块
所包含,这个过程就叫做挖矿,而处理交易信息的这些人就叫矿工,当然,矿工也会获取相应的报酬,比如一些金币等,这就是我们控制区块链中货比流通
的方法。

一个新的区块形成后还要被区块链上的很多人验证、记录后,这些记录才会被标记为已处理,相应的资金才会真正到达接收者的账户

上面我们说到了 元数据、 交易记录、一组交易记录、一个区块、一条区块链

现在我们思考一下,我们应该分别使用什么样的数据结构存储相应的数据

现在我们知道的就只有 列表 数值 布尔值 字符串

很明显这是满足不了我们的需求的,比如要实现一次交易转账:我们需要能够包含键值对的数据结构,顺序无所谓,比如sender在前面在后面都没关系,重
要的是我们能够把sender recipient amonut这些信息放到一个变量里

前面也说了,一个区块中可以包含多条交易记录,这些交易记录可以看做一个组,那么什么样的数据结构可以描述这个组呢?

首先这个数据结构得能存放多条数据,并且我们可以对其中的数据做修改,同样顺序无所谓,但是重要的是我们可以向该数据结构追加数据,比如增加了一
条交易记录

接着就是 用什么样的数据结构存放我们的区块链,区块链就和我们上面的组有点类似,可以存放多条数据,顺序无所谓
还有就是区块应该用什么样的数据结构描述,这主要看你需要存放的数据

一个区块 存放一组交易记录 还有一些 元数据 比如上一个区块的hash在 比如index 这个是可选的 用来标记区块的位置,所以我们同样需要找到一个合适的数据结构来存放区块

最后我们还可能需要管理区块链中所有交易的参与者,所以同样我们也需要一种数据结构能够组织管理这些用户信息,而这些信息是不能重复的

这里用户的名称实际上只是个占位符,真正的交易实际上应该以用户的唯一的id为基准

打赏
  喜欢