/btccoin-go

用go语言实现比特币的基本架构

btccoin-go

用go语言实现比特币的基本架构 名称:比特币原理以及go语言实现 介绍:比特币是区块链的入门案例,也是区块链核心**的凝练。这里通过对交易结构的梳理和对POW挖矿机制的挖掘,确定了区块头的结构:版本号、前hash、MookleRoot、随机数、时间戳、难度值;为了保证数据库中的区块链的读取,区块链结构确定为:获取数据的数据库句柄和保存最后一个区块hash值的索引字段;钱包管理私钥、公钥和地址,通过地址可以检索到公钥、私钥以便交易时调用。 要点: Block模块:包含版本号、前区块hash、难度值、梅克尔根、时间戳、随机数,并为Block模块绑定了创建区块的方法 交易模块:包含了交易id,交易时间戳,TXinputs(交易输入集合),TXinputs(交易输出集合);其中TXinput(交易输入)包含引入交易的id、需要引入utxo所在的索引、解锁脚本用到的公钥和签名;TXinput(交易输出)包含交易接收方的公钥hash和金额 POW模块:实现挖矿算法,生成区块 BlockChain模块:保存区块链和最后一个区块的索引值,配合自定义的迭代器函数可以遍历整个区块链账本 钱包管理模块:实现私钥、公钥和地址的生成和管理,并通过钱包地址可以见多到公钥、私钥