一、编程基础
1、linux/unix
2、C++ 面向对象、泛型、STL,BOOST,OPENSSL
3、算法
3.1 常用算法:排序
3.2 基础算法思想:贪心算法、分治算法,递归、递推
4、数据结构
链表、队列、栈、二叉树
5、GO语言
5.1并发编程
5.2网络编程
6、JS
二 、区块链基础
1、区块链基本原理
1.1区块链技术结构
1.2区块链分类
2、区块链发展脉络
2.1区块链1.0 数字货币
2.2区块链2.0 以太坊
2.3区块链3.0 智能社会
3、区块链的特点
3.1去中心化
3.2可溯源
3.3不可篡改
3.4公开透明
4、区块链应用场景
4.1支付结算
4.2数字票据
4.3资产数字化
4.4征信
4.5 股权登记
4.6证券交易
4.7供应链金融
4.8P2P领域
4.9电子存证
4.10数字版权
4.11招投标
5、钱包
5.1比特币钱包
5.1.1bitcoin
5.1.2bitPay
5.2以太币钱包
5.2.1Mist
5.2.2 MyEtherWallet
5.2.3MetaMask
5.2.4Parity
6 GPU多显卡挖矿
6.1硬件设备
6.2软件工具
6.3 参数调整
7 ICO/IPO
8 硬分叉
8.1 比特币分叉
8.2以太坊分叉
8.2.1byzantium
8.2.2Contantipole
三 区块链进阶
1、共识算法
1.1Pow
1.2POS
1.3DPOS
1.4 PBFT
2、密码学
2.1对称加密
2.2非对称加密
2.3序列密码
2.4 DES
2.5分组密码
2.6 公用密码
2.7HASH
2.8MD5
2.9 RSA
2.10 SHA256
2.11RIP256
2.12数字签名
2.13零知识证明
3、以太坊智能合约
3.1solidate面向对象编程
3.2以太坊私链搭建
3.3以太坊联盟链搭建
3.4TOKEN建立、部署、流通
3.5 IPFS
3.6 TRUFFLE
3.7 WEB 3.0
3.8 Embark
3.9 项目Ebay
4HyperLedger Fabric
4.1 Fabric架构
4.2 Fabric多通道技术
4.3账本设计
4.4 Fabric1.0Endorse背书策略
4.5Fabric Gossip源码分析
4.6开发环境搭建
4.7开发镜像编译
4.8HyperLedger Composer
4.9ChainCode
4.10案例:Fabric explore,cp-web,marbles
4.11GO语言智能合约开发与部署
四 区块链高级
1、源码剖析
1.1BitCoin
1.1.1 proof of work
1.1.2区块高度和分叉
1.1.3交易数据
1.1.4 共识算法
1.1.5分叉检测
1.1.6交易
1.1.6.1P2PK脚本验证
1.1.6.2P2SH脚本
1.1.6.3标准交易
1.1.6.3.1通过public key hash支付
1.1.6.3.2通过脚本hash(P2SH)支付
1.1.6.3.3多重签名
1.1.6.3.4公钥
1.1.6.3.5空数据
1.1.6.4非标准交易
1.1.6.4.1签名hash
1.1.6.4.2锁定时间和序列号
1.1.6.4.3交易费用和变化
1.1.6.4.4避免key重用
1.1.6.4.5交易可塑性
1.1.6.5挖矿
1.1.7合约
1.1.7.1托管与仲裁
1.1.7.2COINJOIN
1.1.8Wallet
1.1.8.1钱包程序
1.1.8.2钱包文件
1.1.9操作模式
1.1.10P2P网络
1.1.10.1 节点发现
1.1.10.2节点连接
1.1.10.3初始区块下载
1.1.10.4区块广播
1.1.10.5 交易广播
1.1.10.6 内存池
1.1.10.7问题节点
1.2以太坊
1.2.1以太坊源码概览
1.2.1.1区块数据结构
1.2.1.2交易数据结构
1.2.1.3交易的HASH
1.2.1.4区块链数据结构
1.2.1.5DATABASE
1.2.1.6创世区块
1.2.1.7STATEdb
1.2.18 Validator & Processor
1.2.2 基础架构
1.2.2.1链规格格式
1.2.2.2ICAP
1.2.2.3URL提示协议
1.2.3EV技术
1.2.3.1RLP编码
1.2.3.2节点发现协议
1.2.3.3P2P有线协议
1.2.3ETHASH
1.2.3.1ETHASH
1.2.3.2ETHASH C API
1.2.3.3 ETHASH DAG
1.2.4Whisper
1.2.4.1Whisper proposer
1.2.4.2概述
1.2.4.3poc-1有限协议
1.2.4.4poc-2有线协议
1.2.5 Bitshares2.0
1.2.5.1环境搭建
1.2.5.2如何使用运行全节点
1.2.5.3自建节点
1.2.5.4Bitshares-core 编译
1.2.5.5交易所集成对接
1.2.5.6bitshare 服务器搭建
1.2.5.7dpos共识算法
1.2.5.8bitshare-ui 钱包 账号管理
1.2.5.9 bitshare.js库详解:chainstore
1.2.5.10bitshare.js库详解:交易广播
1.2.5.11搭建比特股水龙头注册服务
五区块链实战
1.矿池开发
1.1ethernumPool GoLang
1.2bitcoin pool C++
1.2 Blogger chain
1.3钱包开发
btcwallet,ethwallet
基础入门
接下来可以通过下面这几篇文章了解比特币大概的运行原理:
- 区块链记账原理
通过这篇可以了解到区块链是一个怎样的结构 - 比特币所有权及隐私问题
通过这篇可以了解到地址私钥 非对称加密应用 等概念 - 比特币如何挖矿
通过这篇了解工作量证明 - 比特币如何达成共识 - 最长链的选择
通过这篇可以了解共识机制。
进阶
在基础入门之后,可以进一步阅读以下几篇,理解分布式网络,交易验证。
看完上面这些,区块链应该理解差不多了,就可以尝试实现一个简单的区块链了。参考这篇用Python从零开始创建区块链。
以太坊
一个技术要落地还得靠应用, 以太坊就这样一个建立在区块链技术之上, 去中心化的应用平台。可以阅读几下几篇,这部分以开发为主,需要大家多发时间实践。
- 以太坊开发入门
- 智能合约开发环境搭建及Hello World合约
- 搭建智能合约开发环境Remix IDE及使用
- 以太坊客户端Geth命令用法-参数详解
- Geth控制台使用实战及Web3.js使用
- 如何搭建以太坊私有链
- 如何理解以太坊ABI - 应用程序二进制接口
智能合约开发
- 一步步教你开发、部署第一个Dapp应用
- 一步步教你创建自己的数字货币(代币)进行ICO
- 实现一个可管理、增发、兑换、冻结等高级功能的代币
- 如何通过以太坊智能合约来进行众筹(ICO)
- 剖析非同质化代币ERC721-全面解析ERC721标准
- Web3与智能合约交互实战
- Web3监听合约事件
- 如何编写一个可升级的智能合约
- 美链BEC合约漏洞技术分析
Solidity语言教程
Solidity语言是开发智能合约最广泛的语言,本专栏应该是国内最深度介绍Solidity的文章了。
- Solidity 教程系列1 - 类型介绍
- Solidity 教程系列2 - 地址类型介绍
- Solidity 教程系列3 - 函数类型介绍
- Solidity 教程系列4 - 数据存储位置分析
- Solidity 教程系列5 - 数组介绍
- Solidity 教程系列6 - 结构体与映射
- Solidity 教程系列7 - 以太单位及时间单位
- Solidity 教程系列8 - Solidity API
- Solidity 教程系列9 - 错误处理
- Solidity 教程系列10 - 完全理解函数修改器
- Solidity 教程系列11 - 视图函数、虚函数讲解
- Solidity 教程系列12 - 库的使用
- Solidity 教程系列13 - 函数调用
- 智能合约最佳实践 之 Solidity 编码规范