区块链V1版本实现之二
部分程序代码(生成并调用hash代码):
1 //创建区块,对Block的每一个字段填充数据
2 func NewBlock(data string, prevBlockHash []byte) *Block{
3 block := Block{
4 PrevBlockHash: prevBlockHash,
5 Hash: []byte{}, //先填充为空
6 Data: []byte(data),
7 }
8
9 //V1之二版本添加实现hash输出
10 block.SetHash()
11
12 return &block
13 }
14
15 //为了生成区块哈希,实现一个简单的函数,来计算哈希值,没有随机值,没有难度值
16 func (block *Block) SetHash() {
17 var data []byte
18 data = append(data, block.PrevBlockHash...)
19 data = append(data, block.Data...)
20
21 hash /* [32]byte */:= sha256.Sum256(data)
22 block.Hash = hash[:]
23 }
输出效果:

区块链V1版本实现之二的更多相关文章
- 区块链V1版本实现之五
代码重构: block.go文件: package main import ( "crypto/sha256" ) //定义区块结构 type Block struct { //前 ...
- 区块链V1版本实现之一
1. 程序地址:https://gitee.com/Jame_sz/beijing_go_term2.git 2. 程序编写流程: //1. 定义结构(区块头的字段比正常的少) //>1. 前区 ...
- 区块链V1版本实现之三
部分程序代码(区块链的定义及遍历打印): 1 //创建区块链,使用Block数组模拟 2 type BlockChain struct { 3 Blocks []*Block 4 } 5 6 //实现 ...
- 区块链V1版本实现之四
部分程序代码(添加区块): //添加区块 func (bc *BlockChain) AddBlock(data string) { //创建一个区块 //bc.Block的最后一个区块的Hash值就 ...
- 区块链中的密码学(二)-RSA算法分析和实现
密码学领域中,加密算法主要分为对称加密和非对称加密,随着信息时代安全性要求越来越高,对称加密因为其易被破解的原因逐渐被舍弃.而RSA算法是目前密码学世界中比较流行的非对称加密算法,命名是根据其发明者R ...
- 二、主流区块链技术特点及Hyperledger Fabric V0.6版本特点
一.主流区块链技术特点 二.HyperLedger子项目 三.Hyperledger fabric架构 V0.6逻辑架构: V0.6区块链网络 对应的0.6版本的运行时架构: 0.6版本的架构特点是: ...
- 002-主流区块链技术特点及Hyperledger Fabric V0.6版本特点
一.主流区块链技术特点 二.HyperLedger子项目 三.Hyperledger fabric架构 V0.6逻辑架构: V0.6区块链网络 对应的0.6版本的运行时架构: 0.6版本的架构特点是: ...
- 基于Fisco-Bcos的区块链智能合约-简单案例实践
一.智能合约介绍 智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上.FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类 ...
- 分布式共识算法 (四) BTF算法(区块链使用)
系列目录 分布式共识算法 (一) 背景 分布式共识算法 (二) Paxos算法 分布式共识算法 (三) Raft算法 分布式共识算法 (四) BTF算法 一.引子 前面介绍的算法,无论是 Paxos ...
随机推荐
- Java基础—反射与代理(新手向)
第1章 反射与代理 1.1 反射定义 一般情况下,需要一个功能的前提是遇到了某个问题,这里先列举一些问题,然后再通过反射是如何解决了这些问题,来引出反射的定义. 普通开发人员工作中最常见的问题:需要生 ...
- How to get last SysExcelWorksheet object row or column[X++]
findLastColumn int findLastColumn(SysExcelWorksheet _sysExcelWorksheet, boolean _data = true) { #Exc ...
- 【Kata Daily 190919】Sort Out The Men From Boys(排序)
题目: Scenario Now that the competition gets tough it will Sort out the men from the boys . Men are th ...
- PHP修改css文件中的背景图片并下载到本地
扒网站当中一般css中的图片扒不下来,这个脚本就是用来下载这些图片到本地的 流程 1.获取css文件路径 2.打开文件逐行读取判断是否包含需要的图片 2.1 包含则 -进行截取直接获取到相对路径 2. ...
- leetcode138container-with-water
题目描述 给定n个非负整数a1,a2,-,an,其中每个数字表示坐标(i, ai)处的一个点.以(i,ai)和(i,0)(i=1,2,3...n)为端点画出n条直线.你可以从中选择两条线与x轴一起构成 ...
- 利用 Docker 构建一个简单的 java 开发编译环境
目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境 ...
- ptmalloc tcmalloc jemalloc 总结的总结 及覆盖原理
windows下还有 detours库可以hook
- Docker安装Oracle11g
为什么使用docker安装oracle,因为自己搭建配置的话可能时间太久太繁琐等等原因,也因为docker实在太方便了 本文主要是使用docker-compose安装Oracle 11g,因为使用do ...
- python之ftp与paramiko与hasattr与getattr
为了方便树莓派和电脑上相互传输数据文件的传输.也就是上传和下载文件,我自己就写了一个ftp 主要是运用到hasattr与getattr 先看一下服务器上的程序吧 # _*_coding:utf-8_* ...
- rbd的数据在哪里
创建一个rbd [root@mytest ~]# rbd create test1 --size 4000 查看rbd信息 [root@mytest ~]# rbd info test1 rbd im ...