我如何使用上一个块的哈希链接2个块
How exactly do I link 2 blocks using the hash of the previous block?
我是区块链的新手,并希望自己在C 中实现基本区块链。我正在与链接列表进行类比,并且想知道,如何使用哈希而不是指针将块链链接在一起?
考虑C 中的链接列表实现片段:
struct node
{
node *prev;
string data;
}
main()
{
node *first=new node;
node *second=new node;
second->prev=first;
}
现在考虑区块链的这种信房区块结构:
class block
{
string hash;
string prev_hash;
string data;
public:
string calc_hash();
}
main()
{
block genesis;
genesis.data="name,gender,age";
genesis.hash=calc_hash(data);
genesis.prev_hash=0000;
block second;
second.data="name,gender,age";
second.hash=calc_hash(data);
second.prev_hash=genesis.hash;
}
现在,如何使用哈希而不是指针将这些块链接在一起?还是应该像指针一样实现,但具有一些函数以验证块的完整性?
块包含一个标题和一些数据(通常是事务)。用于计算哈希的唯一部分是块标头。
块标头包含以下内容:
块标头
{版本4b} {上一个块哈希32B} {merkle root hash 32b} {time 4b} {bits 4b} {nonce 4b}
相关文章:
- 带链接的基本哈希表
- 通过自定义结构和链接列表类中的C 中的哈希表
- 如何访问链式哈希表链表中的每个节点
- 在自定义哈希表头文件中包括自定义链表
- 迭代器关系运算符出错(带单独链接和迭代器的自定义哈希表)
- 我如何使用上一个块的哈希链接2个块
- C++,在哈希表中显示内容的方法.使用双链表
- 自莫哈韦以来,链接在自制软件的 cmake 中不起作用
- 如果我们使用链表数组来实现哈希表,则可以以不需要遍历的方式实现"add"。这是真的还是假的?
- 将链接哈希表初始化为 NULL。获取"lvalue required as left operand of assignment"错误。为什么?这是我的代码:
- 使用链接的哈希表析构函数
- 使用链接删除哈希表中的值
- C++哈希链接函数
- 初始化哈希表的 stl 列表动态数组(单独链接)
- 将值添加到单独链接的哈希表C++
- QWebView 中的 QT 哈希标签/链接加载
- 哈希表单独链接中没有用于调用xxx的匹配函数
- C++ 哈希表使用链接、删除方法
- c++使用链接从哈希表中获取属性
- 带有链接Bug的c++哈希表