今年区块链发展非常迅速,国内基本没有资料可供查询,趁着最近刚好要整理,就借机发上来了。整理不易,未经允许请勿转载!!
区块链技术入门应先由比特币入门,你掌握的是有兑换价值的虚拟货币,相当于真正的财产,所以你要为你的资产安全了解更多的知识。选择一个钱包,去买一点点比特币,然后尝试去用一点点比特币,这样就会更加深刻的了解这个是个什么东西。你可以到okcoin.cn或huobi.com尝试购买和售出。
以下这篇文章是比特币入门的教程:
https://bitcoin.org/zh_CN/getting-started
当你知道了比特币的简单运作之后,你可以尝试开始部署自己的第一个BTC区块核心。成为比特币的一个节点,支持去中心化的设计。比特币节点大概目前有100GB左右,需要耐心等待区块同步,你最好为你的环境设置200GB以上的预留空间。
window和mac你可以直接到官网下载最新节点来简单部署:
https://bitcoin.org/zh_CN/download
比特币核心部署** - bitcoin core for linux**
http://www.jianshu.com/p/63cc72b27e72
当你部署了一个比特币节点之后,你会加了解核心的一些基础原理。例如区块的概念,区块简单来说是P2P文件同步的基础实现。你可以尝试去理解比特币区块的实现原理和设计目的,目前没有中文版需要啃下英文:
https://bitcoin.org/en/developer-guide#block-chain
比特币用区块的方式来实现了全球节点同步数据,这种方式实现了全球同一不可篡改。交易数据是以区块来记录的,所以交易数据不可被篡改。交易的细节和实现原理可以参考:
https://bitcoin.org/en/developer-guide#transactions
了解了比特币基础原理后,我们可以开始以脚本的形式来尝试我们第一笔用核心接口来实现的交易,通过脚本的步骤你可以了解一笔交易的具体技术细节流程是如何的:
bitcoin-cli完成一个支付流程
http://www.jianshu.com/p/6bc6951f0ca3
熟悉完流程后,我们可以开始考虑技术语言API接入了,比特币是个核心源码,提供了JsonRPC操作接口来为大家开发做支持。目前推荐可以参考的实现语言有Phtyon,Ruby,Erlang,PHP,Java,Perl,Golang,C#,Nodejs,C,C++等,基本上你都可以在以下链接找到参考的例子。
https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)
有了具体的例子,你可以自己实现对比特币的一些代码操作了,参考以下核心接口。
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
当你接通了这些API后,你发现你已经可以做很多事情了。
例如:
像oxbtc.com一样,为用户提供比特币钱包储存比特币,为用户提供提现到其他地址处理。
像btc.com一样,为用户提供各种资料查询,当然这些都已经有别人写好的源码了,你也可以自己尝试做一个简单的区块浏览器。
像pandaminer.com一样,为自己产品提供比特币直接收款支付订单等处理。
像okcoin一样,接收币来提供交易所基础。
以上是比特币应用入门的基础,那么我们来讲一下区块链的开发了,就是对于比特币源码的修改和更深层次的应用。
1.比特币源码,读完源码,你可以简单修改几个参数来自己实现一个区块链,你也可以针对比特币代码的缺陷来修改提交到源码库:
开发指南:https://bitcoin.org/en/development
源码库:https://github.com/bitcoin/bitcoin
2.比特币矿池:
btc.com开源源码:https://github.com/btccom/btcpool
更多的数字货币:
熟悉比特币开发后,其他货币都大同小异,以下只做简单列举:
莱特币核心部署:
http://www.jianshu.com/p/00b0f3c18ce3
ZCash核心部署:
http://www.jianshu.com/p/ccddee5a55a8
以太坊核心部署:
http://www.jianshu.com/p/b78ee53a058d
好了,如果您觉得这篇文章对您有帮助,不妨给我打赏一点点比特币作为支持。(笑脸)
BTC打赏地址:19hexJYkSBpqDmG4phGmE9Q7CK5SRxE4r9
ETH打赏地址:0xdee43d7829e0e0b493a59b6527214ac2de2c73ed
LTC打赏地址: LbEraQcsUKiRTaz5TipEYqWUfpAuBihxhh