刚入门区块链的程序员应该看些什么?

更新日期: 2018-12-07阅读: 1.9k标签: 区块链
来源 | 知乎
作者 | Fickr Sung孫啟誠


毫无疑问,区块链将使得程序员迎来第三春,这个机会在现阶段只属于程序员。

曾经,乔布斯赶上了个人电脑的风潮,创立了引领潮流的苹果电脑

曾经,盖茨赶上了操作系统的拓荒期,创立了全世界每天都在使用的Windows。

曾经,谷歌赶上了信息孤岛的困惑期,创立了连接所有信息的Google。

曾经,还有安卓、IOS、Photoshop、Facebook......

你错过的浪潮太多了。

时代造英雄,你空有一身顶级的造船本领,却没有了海洋,英雄无奈迟暮中。

可是,当区块链大潮到来时,一切都不同了

身怀绝技的程序员有了大展宏图的历史性机会。

你可以创立区块链时代的Windows,也可以创立区块链时代的Internet浏览器,也可以创造Photoshop、Facebook..

一切的底层协议,都由你说了算。

程序员们,该是时候,毅然决然,懂点区块链技术

以下整理自知乎作者Fickr Sung孫啟誠关于区块链学习的清单,希望对你有所帮助。

笔者从2015年开始研究区块链技术,也算是对区块链有一定的了解。预估看到本文的读者为想要入门区块链,那么本文也主要是进行一个入门级别的介绍。只是入门级别介绍,不适合区块链从业人员提升学习。


区块链是什么?

区块链有很多的定义,大家的说法都不一样,业界都还没有统一。每个人心中都有自己的哈姆雷特。所以此处就不做定义了。也可以参考其他回答。

那么我主要推荐一些关于区块链概念的学习资料,看完我所推荐的资料,你应该对这门技术有一个自己的了解:


预备知识

00.一个故事告诉你比特币的原理及运作机制:

http://blog.codinglabs.org/articles/bitcoin-mechanism-make-easy.html


01.区块链是什么 | 巴比特

http://www.8btc.com/what-is-blockchain


正式学习

02.中本聪的关于比特币的白皮书。

英文原版:Bitcoin: A Peer-to-Peer Electronic Cash System

https://bitcoin.org/bitcoin.pdf

中文翻译版本:比特币白皮书:一种点对点的电子现金系统

http://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system

这份白皮书是区块链的起源,也是区块链从业人员必须要看的。


03.普林斯顿大学的公开课:

Bitcoin and cryptocurrency:

https://www.coursera.org/learn/cryptocurrency

内容讲的很透彻。

密码学原理,bitcoin的基本概念,共识机制,区块链现状 ,区块的应用中问题,包括比较新的侧链都有讲到。

基本也是从业人员必看的。


04.Master Bitcoin这本书:

中文名:《精通比特币》

英文名:《Master Bitcoin》

我自己之前并没有在jd/tb/dd/amz找到这本书,所以附上中文电子版本:(链接:https://pan.baidu.com/s/1sl7IMz7 密码: uq7g)侵删。

这本书极其推荐去看一下,内容由浅入深,基本概念,代码分析都是有的,密码学也讲的很通俗易懂。

通过以上资料的学习,基本对于区块链就有了一个基本的了解。


从业务角度学习区块链技术?

01.工信部的白皮书:

链接: https://pan.baidu.com/s/1bGeBi2 密码: ctbn


02.香港金管局的白皮书:

链接: https://pan.baidu.com/s/1mh8sGwK 密码: 25nh


03.腾讯关于TRUSTsql的白皮书:

链接: https://pan.baidu.com/s/1bGeBi2 密码: ctbn


04.《区块链从数字货币到信用社会》--长铗著作

长铗前辈的讲解可以说是非常透彻,而且对于未来的展望也很有现实意义。


05.《区块链:定义未来金融与经济新格局》-张健著作

作者为火币网技术副总裁可以说是个奇才,把概念讲的非常清楚。


06.世界经济论坛区块链报告:

链接: https://pan.baidu.com/s/1nuFcpKH 密码: mbxf


07.国内证券公司报告:

链接: https://pan.baidu.com/s/1nuFcpKH 密码: mbxf


08.美国政府公布的15大区块链医疗研究论文:

链接: https://pan.baidu.com/s/1dFhIRr7 密码: 3fap


09.欧洲央行分布式账本技术报告:

链接: https://pan.baidu.com/s/1dFhIRr7 密码: 3fap


10.其他资料就不太方便共享了。

我觉看了上面推荐的这些书和报告,你应该从业务角度对于区块链技术有了一个比较深入的了解了。


从技术角度学习区块链技术?


基础阶段

01.《区块链开发指南》-作者申屠青春:

作者多余比特币底层的研究可谓是非常深入,讲解的也非常通俗易懂。


02.《区块链技术指南》-作者邹均:

作为国内第一本从技术角度讲解区块链的书籍,值得一读,2016年出版以来一致评价不错。


03.《区块链 原理、设计与应用》-作者杨保华陈昌:

陈昌前辈作为纸贵的CTO、记得之前的墨链就是基于Hyperledger Fabric的,所以这本书对于Hyperledger 相关开源产品的讲解很透彻。


以太坊部分

04.以太坊介绍:

官网:Ethereum Project

https://www.ethereum.org/

中文学习社区:EthFans | 以太坊爱好者

http://ethfans.org/wikis/Hom

GitHub:ethereu

https://github.com/ethereum


05.以太坊白皮书:

中文版:EthFans | 以太坊爱好者

http://ethfans.org/wikis/以太坊白皮书


06:Solidity语言(以太坊开发推荐语言):

官网:Solidity - Solidity 0.4.19 documentation

https://solidity.readthedocs.io/en/develop/


07.web3.js(与以太坊交互的js api):

网址:https://github.com/ethereum/web3.js

论坛:http://forum.ethereum.org/categories/ethereum-js


08.truffle框架

官网:TruffleFramework.com - Truffle Suite

http://truffleframework.com/

以太坊开发的瑞士军刀,几乎是一站式解决方案。


09.Open-zeppelin合约审查:

官网:OpenZeppelin

https://openzeppelin.org/


10.《Ethereum: Blockchains, Digital Assets, Smart Contracts, Decentralized Autonomous Organizations》:

没有中文版,只有亚马逊有卖

Hyperledger 开源项目学习


01.Hyperledger 基本信息:

官网:https://www.hyperledger.org/


02.Fabric 学习:

官网:https://www.hyperledger.org/projects/fabric


其他


01.BigchainDB:

官网:BigchainDB • • The scalable blockchain database powering IPDB.

https://www.bigchaindb.com/

这个是我比较看好的一个项目


02.IPFS:

官网:IPFS is the Distributed Web

https://ipfs.io/

这个据说是一个取代http的价值传输协议,比较看好


03.国内的布比:

官网:布比区块链,让数字资产自由流动起来

http://www.bubi.cn/

个人认为值得研究《区块链技术原理与底层架构》,这本书有详细讲解布比的技术实现。


学习资料推荐与共享?

图文教程

  • 在CentOS 6.5上搭建以太坊私有链

    http://www.huiyanghua.com/article/plant/469/4707.html

  • 创建自己的私有比特币测试链

    https://bitshuo.com/topic/5847b86b63baf1df6cad0d6f

  • 以太坊智能合约编写实例

    http://blog.csdn.net/u013137970/article/details/53018423

  • 以太坊智能合约编程之菜鸟教程

    http://ethfans.org/posts/101-noob-intro

  • 通过truffle部署以太坊智能合约

    https://bitshuo.com/topic/584241f863baf1df6cad0d40

  • Hyperledger 源码分析之 Fabric

    https://yeasy.gitbooks.io/hyperledger_code_fabric/content/

  • programming blockchain in c#

    https://programmingblockchain.gitbooks.io/programmingblockchain/content/

  • Nodejs开发加密货币

    http://bitcoin-on-nodejs.ebookchain.org/

  • 精通比特币

    http://zhibimo.com/read/wang-miao/mastering-bitcoin/

  • 区块链技术指南

    https://yeasy.gitbooks.io/blockchain_guide/content/

  • 区块链:定义未来金融与经济新格局

    http://product.dangdang.com/23992352.html

  • Hyperledger 源码分析之 Fabric

    https://yeasy.gitbooks.io/hyperledger_code_fabric/content/

  • programming blockchain in c#

    https://programmingblockchain.gitbooks.io/programmingblockchain/content/

  • csdn的blockchain知识库

    http://lib.csdn.net/case/blockchain

  • History of cryptography

    https://en.wikipedia.org/wiki/History_of_cryptography

  • 公钥与私钥

    http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389547.html

  • 什么是椭圆曲线加密(ECC)

    http://8btc.com/article-138-1.html

  • 比特币背后的密码学原理

    https://www.jianshu.com/p/225ff9439132

  • 密码学一小时必知

    https://blog.helong.info/blog/2015/04/12/translate-Everything-you-need-to-know-about-cryptgraphy-in-1-hour/

  • 现代密码学实践指南

    https://blog.helong.info/blog/2015/06/06/modern-crypto/

  • SafeCurves:choosing safe curves for elliptic-curve cryptography

    https://safecurves.cr.yp.to/


链接: https://www.fly63.com/article/detial/1514

从概念到底层技术,一文看懂区块链架构设计(附知识图谱)

区块链作为一种架构设计的实现,与基础语言或平台等差别较大。区块链是加密货币背后的技术,是当下与VR虚拟现实等比肩的热门技术之一,本身不是新技术,类似Ajax,可以说它是一种技术架构,所以我们从架构设计的角度谈谈区块链的技术实现。

200行JS代码实现超级简单的区块链,带你入门区块链

本文通过JavaScript源码实现一个简单的区块链框架,带你入门区块链的相关知识。区块链的基本概念非常简单:一个分布式数据库维持不断增长的有序记录列表。

用JavaScript写一个区块链

几乎每个人都听说过像比特币和以太币这样的加密货币,但是只有极少数人懂得隐藏在它们背后的技术。在这篇博客中,我将会用JavaScript来创建一个简单的区块链来演示它们的内部究竟是如何工作的

初识区块链_用JS构建你自己的区块链

区块链太复杂,那我们就讲点简单的。用JS来构建你自己的区块链系统,寥寥几行代码就可以说明区块链的底层数据结构、POW挖矿思想和交易过程等。当然了,真实的场景远远远比这复杂。本文的目的仅限于让大家初步了解、初步认识区块链。

区块链 PoW 与 PoS 的纷争

有关注区块链的,肯定会经常看到这两个名词 -- PoW 与 PoS。但是很多人对他们的含义的理解存在很多偏差。那么他们的含义与区别是什么呢?简单而言,PoW 和 PoS 是 2 种不同的对记账权利的分配方式。

使用javascript实现小型区块链

区块链概念狭义:区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码方式保证的不可篡改和不可伪造的分布式账本。

NodeJS实现简易区块链

很多区块链接在一起,就组成了一条链。这条链,也用class来表示。并且其中实现了很多方法:按照加密规则生成hash,插入新块和检查操作,批量插入块和检查操作以及可信度计算

区块链开发中使用的最流行的编程语言

我们目前正处于一个新兴的区块链开发行业中。区块链技术处于初期阶段,然而这种颠覆性技术已经成功地风靡全球,并且最近经历了一场与众不同的繁荣。由于许多资金充足的项目现在急于建立区块链网络并在其上部署分散的应用程序

探索区块链的原理

之前经常听别人说,挖矿、比特币、区块链之类的东西,听起来好高大上呀,后来在网上了解相关知识,但是网上大部分都是转载,没一个能讲明白的,后来不知不觉接触到了一些易懂的点

12个问题讲明白什么是区块链技术?

为什么要使用区块链技术? 虽然分布式账本肯定有很多优点,但它可能不适用于每个人或所有公司,至少目前还不适用。人们在听到区块链时,通常会产生疑问:区块链是什么?

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!