博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于Go语言构建区块链:part4
阅读量:5128 次
发布时间:2019-06-13

本文共 2630 字,大约阅读时间需要 8 分钟。

Golang语言和区块链理论学习完毕后,快速入门方法无疑是项目实战。本文将参考https://jeiwan.cc/tags/blockchain/教程,学习如何基于Go语言构建区块链。

1、引言

本文为原文第4部分学习笔记,该部分主要是实现blockchain的交易信息。交易是比特币的核心,而blockchain的唯一目的就是安全可靠地存储交易信息,确保创建交易后,没人可以修改该交易信息。 实现过程和说明可参见原文,本文主要描述实现后的命令行交互过程。

2、Blockchain编译及调用

代码实现后,要想在命令行调用,最好先编译该项目。进入项目路径D:\go\src\Blockchain,输入以下命令:

D:\go\src\Blockchain>go build  

 可看到项目路径内生成Blockchain.exe的编译文件。

接下来可按照 cli.go 中定义的命令信息,输入相关命令。

 

使用Ivan创建一个blockchain: 

D:\go\src\Blockchain4>Blockchain4 createblockchain -address Ivan00073ce6c344d91351e9d49bba55472654591b5b4ebcb70c5c70d94fddb39c0cDone!

  

查看Ivan 账户余额:

D:\go\src\Blockchain4>Blockchain4 getbalance -address IvanBalance of 'Ivan': 10

  

  

 再尝试进行一些交易:

D:\go\src\Blockchain4>Blockchain4 send -from Ivan -to Pedro -amount 6000f22d22301684ab62eef839cd9b0a5f6fae1acde730c9e9fb113fd088fe1d9Success!D:\go\src\Blockchain4>Blockchain4 getbalance -address IvanBalance of 'Ivan': 4D:\go\src\Blockchain4>Blockchain4 getbalance -address PedroBalance of 'Pedro': 6D:\go\src\Blockchain4>Blockchain4 send -from Pedro -to Helen -amount 2000df67188c14e1d101e0abc2a3f4bbacc74ef913d2521106533347ffeb093caSuccess!D:\go\src\Blockchain4>Blockchain4 send -from Ivan -to Helen -amount 2000c33a5e42c8693f6934a4dd3e4d933b32cfeeccd9435d93f83a12c36608ea8Success!D:\go\src\Blockchain4>Blockchain4 send -from Helen -to Rachel -amount 3000e499dc07fce475cde7cbac1c0e9178aaf1b00bf2c8a622c05b2accdd41ad1Success!D:\go\src\Blockchain4>Blockchain4 getbalance -address IvanBalance of 'Ivan': 2D:\go\src\Blockchain4>Blockchain4 getbalance -address PedroBalance of 'Pedro': 4D:\go\src\Blockchain4>Blockchain4 getbalance -address HelenBalance of 'Helen': 1D:\go\src\Blockchain4>Blockchain4 getbalance -address RachelBalance of 'Rachel': 3

  

尝试一种异常情况:PedroIvan5元,但是Pedro只有4元,消费失败。交易失败前后,PedroIvan的余额未发生变化。 

D:\go\src\Blockchain4>Blockchain4 send -from Pedro -to Ivan -amount 52018/03/14 20:09:13 ERROR: Not enough fundspanic: ERROR: Not enough fundsgoroutine 1 [running]:log.Panic(0xc042065d18, 0x1, 0x1)        C:/Go/src/log/log.go:326 +0xc7main.NewUTXOTransaction(0xc04200e100, 0x5, 0xc04200e120, 0x4, 0x5, 0xc042002e20, 0xc042065e70)        D:/go/src/Blockchain4/transaction.go:85 +0x789main.(*CLI).send(0xc042065f70, 0xc04200e100, 0x5, 0xc04200e120, 0x4, 0x5)        D:/go/src/Blockchain4/cli.go:75 +0xc2main.(*CLI).Run(0xc042065f70)        D:/go/src/Blockchain4/cli.go:147 +0x4aemain.main()        D:/go/src/Blockchain4/main.go:5 +0x32D:\go\src\Blockchain4>Blockchain4 getbalance -address PedroBalance of 'Pedro': 4D:\go\src\Blockchain4>Blockchain4 getbalance -address IvanBalance of 'Ivan': 2

  

 

 

 

转载于:https://www.cnblogs.com/yxdz-hit/p/8563343.html

你可能感兴趣的文章
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>
存储(硬件方面的一些基本术语)
查看>>
观察者模式
查看>>
Weka中数据挖掘与机器学习系列之基本概念(三)
查看>>
Win磁盘MBR转换为GUID
查看>>
大家在做.NET B/S项目的时候多用什么设技术啊?
查看>>
Java SE和Java EE应用的性能调优
查看>>
Android设计模式系列--原型模式
查看>>
免费的论文查重网站
查看>>
C语言程序第一次作业
查看>>
leetcode-Sort List
查看>>
中文词频统计
查看>>
了解node.js
查看>>
想做移动开发,先看看别人怎么做
查看>>
Eclipse相关集锦
查看>>