摘要: 实际应用如上所示,前面defer,捕捉后面一切可能的panic 阅读全文
posted @ 2018-11-07 14:41 coder劲 阅读(849) 评论(0) 推荐(0) 编辑
摘要: package main import "fmt" import "os" type point struct { x, y int } func main() { //Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。 p := point{1, 2} fmt.Printf("%v\n", p) // {1 2} //... 阅读全文
posted @ 2018-10-26 16:04 coder劲 阅读(7481) 评论(0) 推荐(0) 编辑
摘要: 大端模式:数据的高字节保存在内存的低地址中,低字节保存在内存的高地址 小端模式,数据的高字节保存在内存的高地址中,低字节保存在内存的低地址 比如整形十进制数字:305419896 ,转化为十六进制表示 : 0x12345678 。其中按着十六进制的话,每两位占8个字节。如图 为什么有大小端模式之分呢 阅读全文
posted @ 2018-10-25 23:17 coder劲 阅读(899) 评论(0) 推荐(0) 编辑
摘要: 数组的特点: 1、长度固定,无法扩容 (记住) 2、数组是值类型,也就是说在作为参数时,函数体中无法修改传入的数组的值 数组定义的方式: 切片特点: 1、长度不固定、可以追加元素(append),在追加时可能使切片的容量增大 2、切片是引用类型 切片slice的数据结构:一个指向真实array数组地 阅读全文
posted @ 2018-10-24 18:57 coder劲 阅读(653) 评论(0) 推荐(0) 编辑
摘要: ... 三个点: 作用:1、不定参 2、slice可以被打散进行传递。 阅读全文
posted @ 2018-10-19 12:06 coder劲 阅读(1073) 评论(0) 推荐(0) 编辑
摘要: 交易机制:1、区块链能够安全可靠地存储交易结果2、在区块链中,交易一旦被创建,就没有任何人能够再去修改或删除3、交易由一些输入与一些输出组合而来4、对于一笔新的交易,它的输入会引用之前一笔交易的输出5、交易的输出,也就是比特币实际存储的地方6、例外: 1、有一些输出并没有被关联到某个输入上(尚未使用 阅读全文
posted @ 2018-10-18 21:49 coder劲 阅读(371) 评论(0) 推荐(0) 编辑
摘要: main.go 引入"github.com/boltdb/bolt" blockchain.go 序列化block与反序列 block.go 阅读全文
posted @ 2018-10-14 18:24 coder劲 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 什么是工作量证明:1、工作的结果作为数据加入区块链成为一个区块2、完成这个工作的人会获得奖励(这也就是通过挖矿获得比特币)3、整个“努力工作并进行证明”的机制,就叫工作量证明 为什么采用哈希算法:1、不可逆:无法从一个哈希值恢复原始数据,哈希并不是加密2、唯一性:对于特定的数据,只能有一个哈希值,并 阅读全文
posted @ 2018-10-12 11:51 coder劲 阅读(1369) 评论(0) 推荐(0) 编辑
摘要: 区块的结构: 1、在区块链中,存储有效信息的是区块 2、Timestamp是当前时间戳,也就是创建区块的时间 3、PrevBlockHash存储前一个区块的哈希值 4、Data是区块存储的实际有效的信息 5、Hash是当前区块的哈希值 block.go 区块组成链式结构: 1、区块链是有着特定结构的 阅读全文
posted @ 2018-10-11 14:27 coder劲 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 植入: 在main包中 import _ "net/http/pprof" 在main函数中添加 go func() { log.Println(http.ListenAndServe("0.0.0.0:6060", nil)) }() 就这样两步就完成了pprof植入 分析: go tool pp 阅读全文
posted @ 2017-09-18 10:27 coder劲 阅读(3684) 评论(0) 推荐(0) 编辑