区块链V1版本实现之一
1. 程序地址:https://gitee.com/Jame_sz/beijing_go_term2.git
2. 程序编写流程:
//1. 定义结构(区块头的字段比正常的少)
//>1. 前区块哈希
//>2. 当前区块哈希
//>3. 数据
//2. 创建区块
//3. 生成哈希
//4. 引入区块链
//5. 添加区块
//6. 重构代码
3. 程序代码:
1 go:
2 package main
3
4 import "fmt"
5
6 //定义区块结构
7 type Block struct {
8 //前区块哈希
9 PrevBlockHash [] byte
10 //当前区块哈希
11 Hash [] byte
12 //数据,目前使用字节流,v4开始使用交易代替
13 Data [] byte
14 }
15
16 const genesisInfo = "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
17
18 //创建区块,对Block的每一个字段填充数据
19 func NewBlock(data string, prevBlockHash []byte) *Block{
20 block := Block{
21 PrevBlockHash: prevBlockHash,
22 Hash: []byte{}, //先填充为空
23 Data: []byte(data),
24 }
25 return &block
26 }
27
28
29 func main() {
30 fmt.Printf("HelloWorld!!!\n")
31
32 //区块实例化
33 block := NewBlock(genesisInfo,[]byte{0x0000000000000000})
34
35 //区块打印
36 fmt.Printf("PrevBlockHash : %x\n", block.PrevBlockHash)
37 fmt.Printf("Hash : %x\n", block.Hash)
38 fmt.Printf("Data : %s\n", block.Data)
39 }
4. 输出效果:

5. 终端Git命令
1 //代码克隆拉取,默认分支为Master
2 git clone https://gitee.com/Jame_sz/beijing_go_term2.git
3
4 //本地仓库获取v1分支
5 git fetch origin v1:v1
6
7 //切换分支
8 git checkout v1
9
10 //远程有提交,需要更新本地仓库时
11 git pull
区块链V1版本实现之一的更多相关文章
- 区块链V1版本实现之五
代码重构: block.go文件: package main import ( "crypto/sha256" ) //定义区块结构 type Block struct { //前 ...
- 区块链V1版本实现之三
部分程序代码(区块链的定义及遍历打印): 1 //创建区块链,使用Block数组模拟 2 type BlockChain struct { 3 Blocks []*Block 4 } 5 6 //实现 ...
- 区块链V1版本实现之二
部分程序代码(生成并调用hash代码): 1 //创建区块,对Block的每一个字段填充数据 2 func NewBlock(data string, prevBlockHash []byte) *B ...
- 区块链V1版本实现之四
部分程序代码(添加区块): //添加区块 func (bc *BlockChain) AddBlock(data string) { //创建一个区块 //bc.Block的最后一个区块的Hash值就 ...
- 基于Fisco-Bcos的区块链智能合约-简单案例实践
一.智能合约介绍 智能合约是指把合同/协议条款以代码的形式电子化地放到区块链网络上.FISCO BCOS平台支持两种智能合约类型:Solidity智能合约与预编译智能合约 Solidity与Java类 ...
- 三、主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 003-主流区块链技术特点及Hyperledger Fabric V1.0版本特点
一.Hyperledger fabric V1.0 架构 1.逻辑架构: 2.区块链网络 3.运行时架构 二.架构总结 1.架构要点 分拆Peer的功能,将Blockchain的数据维护和共识服务进行 ...
- 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
摘要: 全球开源区块链领域影响最为广泛的Hyperledger Fabric日前宣布了1.1版本的正式发布,带来了一系列丰富的新功能以及在安全性.性能与扩展性等方面的显著提升.阿里云容器服务区块链解决 ...
- 二、主流区块链技术特点及Hyperledger Fabric V0.6版本特点
一.主流区块链技术特点 二.HyperLedger子项目 三.Hyperledger fabric架构 V0.6逻辑架构: V0.6区块链网络 对应的0.6版本的运行时架构: 0.6版本的架构特点是: ...
随机推荐
- 删除指定路径下指定天数之前(以文件的修改日期为准)的文件:forfiles
删除指定路径下指定天数之前(以文件的修改日期为准)的文件:forfiles 代码如下: @echo off ::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. ::如果演示结果无 ...
- Route53导出解析记录
使用AWS CLI来进行导出 可以参考AWS的官方文档 安装AWS CLI 官方安装aws cli文档 curl "https://awscli.amazonaws.com/awscli-e ...
- 3.5 MyLinkedList 实现
3.5 MyLinkedList 类的实现 MyLinkedList 将用双链表实现,并且还需要保留该表两端的引用.这将需要三个类 MyLinkedList 类,包含到两端的链.表的大小以及一些方法. ...
- 【Python】如何结束退出 py 脚本
需求 当你运行脚本,在判断条件满足时,就退出脚本,结束本次执行. 方法 使用 sys.exit(),直接退出程序,但是会引发一个 SystemExit 异常: 该方法包含一个 status 参数 sy ...
- python-找不到tk包
找不到-tk包 直接sudo apt-get install python3-tk 或者sudo apt-get install python-tk 百度上的方法不可信,还是直接这样一句命令来的实在
- python数据分析03Python的数据结构、函数和文件
我们会从Python最基础的数据结构开始:元组.列表.字典和集合.然后会讨论创建你自己的.可重复使用的Python函数.最后,会学习Python的文件对象,以及如何与本地硬盘交互. 3.1 数据结构和 ...
- day86:luffy:前端发送请求生成订单&结算页面优惠劵的实现
目录 1.前端发送请求生成订单 1.前端点击支付按钮生成订单 2.结算成功之后应该清除结算页面的数据 3.后端计算结算页面总原价格和总的真实价格并存到数据库订单表中 2.优惠劵 1.准备工作 2.前端 ...
- 分布式文档存储数据库之MongoDB副本集
前文我们聊到了mongodb的索引的相关作用和介绍以及索引的管理,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13950287.html:今天我们来聊下mon ...
- mysql实现当前行的值累加上一行的值
数据库钱包表有日期.收入.支出三个字段.用mysql语句计算每日余额,得如下结果 select m.*, @total :=@total + 收入 - 支出 as 钱包余额 ( select * fr ...
- 用npm安装插件时报错: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents)
在做前端项目的时候执行命令: npm install --save-dev file-loader@1.1.6 --registry=https://registry.npm.taobao.org 出 ...