Go
甘甘甘甘甘甘甘
码不停题
展开
-
Golang|区块链UTXO集源码分析
区块链UTXO集源码分析资源go实现区块链前提在未实现UTXO集之前,假设系统需要查询某个钱包地址的余额,系统需要遍历区块链的所有区块,当区块链非常长时,这种做法的成本太高了。UTXO集是未花费交易输出的集合,它存储区块链中所有未花费交易输出。在实现UTXO集后,系统只需要遍历UTXO集就可以得到某个钱包地址的余额(或者其他操作)。它的结构体如下:// UTXOSet represents UTXO settype UTXOSet struct { Blockchain *Blockcha原创 2020-07-16 11:31:05 · 630 阅读 · 0 评论 -
Golang|区块链数字签名与校验源码分析
区块链数字签名与校验源码分析资源go实现区块链剖析区块链(六): 核心技术之数字签名源码分析钱包// Wallet stores private and public keystype Wallet struct { PrivateKey ecdsa.PrivateKey PublicKey []byte}区块链钱包是私钥和公钥的集合。地址地址的计算过程可以由下图来表示:也就是,系统通过钱包的公钥可以计算出钱包的地址。// GetAddress returns walle原创 2020-07-15 22:14:36 · 829 阅读 · 1 评论 -
Golang|区块链Transaction实现源码分析
区块链Transaction实现源码分析资源go实现区块链程序运行结果源码分析当程序解析到命令行参数时,将调用结构体CLI的createBlockchain方法。这个方法的作用是在本地数据库中创建一个含有创世区块的区块链。(如果在本地数据库中已经含有区块链,则不执行创建)进入到该方法的源码部分。// CreateBlockchain creates a new blockchain DBfunc CreateBlockchain(address string) *Blockchain {原创 2020-07-14 14:32:45 · 559 阅读 · 0 评论 -
Golang|gob序列化示例
gob序列化问题描述现有结构体Human,利用gob进行序列化与反序列化。注意事项要注意结构体的变量名开头要大写,不然外界访问不到,不能进行序列化。序列化过程与反序列化过程只需要调用gob包下的api即可,详情见源码。实现package mainimport ( "bytes" "encoding/gob" "fmt" "log")type Human struct { Name string Age int}func Serialize(human *Human)原创 2020-07-13 20:49:18 · 875 阅读 · 0 评论