首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员开发者说:小白如何了解学习区块链技术

区块链是什么?

在给大家分享从零基础进入web前端开发行业?五年开发大牛告诉你要注意这些?的时候,小编推荐大家加一下这个前端裙:二一零七一二八六一!如果有对前端感兴趣前端程序员,可以加入我们的web前端技术学习裙哦。

什么是区块链?区块链有很多的定义,大家的说法都不一样,业界都还没有统一。每个人心中都有自己的哈姆雷特,那么我们今天首先用大家都爱谈的恋爱,举个简单的例子。

建立一个简单的区块链模型,那么在这个区块链模型里面谈恋爱将会出现一下情况:

(上图源自网络,侵删)

所有男女恋爱,结婚的承诺全过程都被其他所有适龄男女共识,两个人在一起发生的所有故事就会形成区块。

(上图源自网络,侵删)

其他所有男女就是链,如果有第三者来插足或自身违背另一半,其他人都能看到,以后就再也找不到对象了。

看了这个图文解说,我想大家对区块链有一定的了解了,那么,到底什么是区块链呢?区块链由什么构成呢?

1,区块链是一个放在非安全环境中的分布式数据库(系统)。

2,区块链采用密码学的方法来保证已有数据不可能被篡改。

3,区块链采用共识算法来对于新增数据达成共识。

具有以上三个性质的系统,就是区块链。

区块链技术

好了,回归主题,那么开发者如何学习区块链技术呢?

一、基础阶段

01.《区块链开发指南》-作者申屠青春:作者多余比特币底层的研究可谓是非常深入,讲解的也非常通俗易懂。

02.《区块链技术指南》-作者邹均:作为国内第一本从技术角度讲解区块链的书籍,值得一读,2016年出版以来一致评价不错。

03.《区块链 原理、设计与应用》-作者杨保华陈昌:陈昌前辈作为纸贵的CTO、记得之前的墨链就是基于Hyperledger Fabric的,所以这本书对于Hyperledger 相关开源产品的讲解很透彻。

二、技术语音

01. Serpent (受Python启发)

02. Solidity (受JavaScript 启发)

03. Mutan(受Go 启发)

04. LLL (受Lisp 启发)

这些语音都是面向合约编程而从底层开始设计的语言。Solidity是以太坊的首选语言,正处于紧张开发中,它内置了Serpent的所有特性,但是语法类似于JavaScript,这样一来降低了学习门槛,易于被掌握和使用,因为JavaScript是我们Web开发者的常用语言。如果想入门开发智能合约的,就只需要注重学习Solidity,可以看看以太坊的开发入门。

总结

简单的总结一下,区块链技术本身并不复杂,相反的可以说还是很好理解的,就共识(就是确定交易顺序),加密,p2p和存储四个方面。

再剖析一下,p2p就是传统bt下载的点对点通信协议;存储就是nosql数据库比如leveldb;加密就涉及哈希和椭圆曲线非对称加密;共识算法倒是很多,但是公有链的pos和pow都还挺容易理解的,一种是“谁有钱谁说了算”另一种是“谁计算机牛逼谁说了算”,联盟链上现在比较火热的pbft是很多年前就用的分布式数据库副本。代码实现的技术细节我自己都没有抠过,但只要能明白原理其实就看得懂代码。

如果想进阶,可以了解以太坊,fabric和corda三个方向。这是区块链代表性的三个方向,我觉得也是发展的三条思路。

转载自兴趣部落【前端】一世老师

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180413A1J8KE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券