
goland实现区块链
文章平均质量分 65
Clown95
a low coder
展开
-
Golang实现区块链(一)使用Go语言实现简易区块链
这篇文章使用Go语言实现简易区块链,通过这篇文章可以了解到:区块链的基本组成部分是区块。每个区块包含了以下信息:2.创建区块我们可以使用以下方法来创建一个新的区块,也就是构建 对象:3.设置 Hash 函数区块链采用 Hash 函数进行数据验证的原因包括:实现 Hash 函数的方法如下:4.构建创世区块如同火车需要一节火车头以引导后续的车厢,区块链也需要一个创世区块。三、链实现区块链是一个有序连接区块的结构,可以视作一种特殊的数据存储。每个区块通过其 Hash 值彼此相连。在 Go 语言中原创 2018-10-03 18:12:23 · 5759 阅读 · 3 评论 -
Golang实现区块链(二)—工作量证明(poW)
在上一篇的文章中我们实现一个简单的区块链结构。相信大家都知道比特币的挖矿,本文就将基于上篇文章来实现poW挖矿功能。上篇文章地址:https://blog.youkuaiyun.com/yang731227/article/details/82932990挖矿原理在讲poW之前我们先来讲讲以比特币为例的挖矿原理,其实说挖矿其实并不准确,我们应该称其为记账。记账是把交易记录、交易时间、账本序号、上一个...原创 2018-10-04 00:16:00 · 1518 阅读 · 1 评论 -
Golang实现区块链(三)使用 BoltDB 实现区块链持久化
BoltDB 是一种基于键值存储的数据库,适用于 Go 语言。与关系型数据库(如 MySQL、PostgreSQL)不同,BoltDB没有表的概念,数据以键值对存储在“桶”中。小巧而简约使用 Go 语言实现无需单独部署支持我们所需的数据结构本文介绍了如何使用 BoltDB 实现区块链数据的持久化。然而,当前实现仍存在通过轮询检查数据库是否存在的缺陷,并未能自动加载先前的区块链状态。下一篇文章中,我们将继续完善这一功能,引入区块链的迭代和命令行交互接口,以实现更完善的功能。原创 2018-10-09 20:05:50 · 1740 阅读 · 0 评论 -
Golang实现区块链(三)—数据持久化(2)添加CLI交互接口
上章我们实现了区块对BoltDB的写入,现在我们来完善下,可以通过命令行从BoltDB中查询区块。完善持久化上章我们实现的逻辑是这样的:1.创建DB文件,并打开2.创建桶3.创世区块链序列化4.把创世区块的Hash添加到DB中5.把创世区块添加到链中现在我们来把完善逻辑:打开DB文件检测是否已经有区块链存在如果存在创建新区块链实例把刚建的这个区块链信息的作为最后一块区...原创 2018-10-10 11:54:27 · 988 阅读 · 5 评论 -
Golang实现区块链(四)—交易
title: Golang实现区块链(四)—交易tags: go,blockchain到目前为止我们已经实现了区块链的持久化和交互界面。但是比特币中最核心的交易功能,我们还没能实现它,本章就将对区块链交易功能进行实现。比特币交易原理在实现交易功能之前,我们首先了解下比特币的交易原理,比特币采用的是 UTXO 模型,并非账户模型,并不直接存在“余额”这个概念,余额需要通过遍历整个交易历史...原创 2018-10-25 14:18:05 · 2445 阅读 · 1 评论