Golang实战开发区块链公链项目
链接: https://pan.baidu.com/s/1rIJfNA7Bgdm1mN2UPXWHXg 提取码: cg6i
目前,相信有人也听说过区块链分为公有链、私有链和联盟链。那么,它们三者有何区别?
根据中国区块链技术和应用发展白皮书可知:
1. 公有链
公有链上的各个节点可以自由加入和退出网络,并参加链上数据的读写,读写时以扁平的拓扑结构互联互通,网络中不存在任何中心化的服务端节点。
像大家所熟悉的比特币和以太坊,都是一种公有链。公有链的好处是没有限制,你可以自由参加。
2. 私有链(专有链)
私有链中各个节点的写入权限收归内部控制,而读取权限可视需求有选择性地对外开放。专有链仍热具备区块链多节点运行的通用结构,适用于特定机构的内部数据管理与审计。
其中,R3CEV Corda平台以及超级账本项目(Hyperledger project)等都是私有链项目,对交易效率、隐私保障和监管控制有着更高要求的场景,私有链的应用是主要方向。
3. 联盟链
联盟链的各个节点通常有与之对应的实体机构组织,通过授权后才能加入与退出网络。各机构组织组成利益相关的联盟,共同维护区块链的健康运转。
三大类型区块链的核心区别,在于访问权限的开放程度,或者叫去中心化程度。本质上,联盟链也属于私有链,只是私有的程度不同。一般来说,去中心化程度越高、信任和安全程度越高,交易效率则越低。
本次项目是针对区块链公链开发,课程目录如下:
001.内容介绍
002.Block结构[vxia.net]
003.根据区块数据生成区块HASH
004.CreateGenesisBlock
005.Blockchain结构
006.添加新的区块
007.ProofOfWork框架[vxia.net]
008.工作量证明算法分析
009.target移位处理
010.挖矿算法完整实现[vxia.net]
011.判断区块Hash的有效性
012.课程目标
013.区块的序列化和反序列化[vxia.net]
014.boltdb数据库的创建或者打开
015.创建表并且往表里面存储数据
016.boltdb-Update-View
017.区块序列化反序列化-boltdb[vxia.net]
018.复习
019.创建创世区块并且将创世区块序列化存储到数据库中
020.新增区块并且存储到数据库
021.遍历区块链[vxia.net]
022.时间格式化输出
023.通过迭代器遍历区块链
024.将blockchain和BlockchainIterator进行分离
025.flag基本使用
026.os
027.命令行解析[vxia.net]
028.数据持久化完整版
029.createblockchain命令
030.改善创建创世区块的方法
031.代码完善处理[vxia.net]
032.Block里面设置Transaction数组
033.UTXO模型原理
034.coinbase 交易
035.UTXO 模型案例
036.转账命令行处理[vxia.net]
037.JSONToArray
038.转账相关方法串联
039.交易整体框架搭建完成
040.UTXO 复习[vxia.net]
041.构造区块交易测试数据
042.构造测试数据区块3
043.转账算法逻辑分析
044.UnSpentTransationsWithAdress
045.getbalance-cli
047.遍历UTXO
048.查找UTXO
049.余额查询[vxia.net]
050.UTXO模型算法优化
051.复习
052.文件分离-优化
053.转账方法优化[vxia.net]
054.UnUTXOs方法优化
054.转账逻辑代码实现
055.单笔交易转账测试
056.转账逻辑处理
057.BUG处理-转账完整版
058.复习[vxia.net]
059.公钥私钥加密简单过程
060.sha256
061.ripemd160[vxia.net]
062.base58加密解密
063.base64对称加密
064.wallet[vxia.net]
065.地址生成步骤
066.Wallet对象创建[vxia.net]
067.通过公钥生成钱包地址
068.判断地址是否合法有效
069.Wallets结构
070.将地址集成到项目里面
071.addresslists
072.Wallet逻辑复习[vxia.net]
073.将钱包信息写入到dat文件
074.输出所有钱包地址
075.TXOutput & TXInput里面增加公钥
076.复习[vxia.net]
077.数字签名和验证接口
078.数字签名过程分析
079.签名验证[vxia.net]
080.数字签名
081.通过代码实现数字签名
082.数字签名验证
083.课程内容介绍[vxia.net]
084.数字签名复习
085.增加挖矿奖励
086.UTXO_set优化原理
087.查找所有人的未花费输出
088.测试FindUTXOMap[vxia.net]
089.处理同时给打包多笔交易时数字签名出现的bug
090.遍历所有UTXO并存储到数据库
091.FindUTOXMap方法优化
092.查找某人地址对应的所有的UTXO[vxia.net]
093.查询余额
094.修改CoinbaseTransaction交易Hash导致的bug
095.复习
096.转账优化
097.转账
098.转账验证[vxia.net]
099.未花费交易输出更新算法逻辑及实现
100.更新处理
101.MerkleTree
102.以太坊私有节点[vxia.net]
103.以太坊多节点连接
104.以太坊联盟链搭建(上)
105.以太坊联盟链(下)
106.简易的网络服务[vxia.net]
107.简易的分布式节点项目效果
108.NODE_ID设置
109.NODE_ID项目配置
110.区块链验证逻辑[vxia.net]
111.客户端服务器使用
112.startnode-cli
113.项目集成客户端和服务器代码
114.节点同步数据逻辑[vxia.net]
115.Version信息处理
116.获取节点区块链高度
117.处理客户端接收到的数据
118.handle系列方法配置[vxia.net]
119.Version消息的处理
120.GetBlocks
121.GetBlockHashes
122.sendInv
123.handlInv[vxia.net]
124.handlGetData
125.主节点.钱包节点.矿工节点交互逻辑
126.钱包节点和主节点数据同步过程分析[vxia.net]
127.代码逻辑
128.getblock
129.sendBlock
130.handleBlock
131.AddBlock[vxia.net]
132.通过一个中间变量不断迭代向主节点读取区块链
133.节点间数据同步完整代码逻辑
134.重置数据库Bug处理