0基础能学习区块链吗_学习区块链需要什么基础知识 - CSDN
  • 如何系统的学习区块链技术,是很多想从事区块链开发的程序员的问题,我们来一起讨论下,希望可以帮助更多的人掌握区块链开发技术。 确定方向 从事区块链开发也有很多方向,如:区块链应用开发人员、区块链架...

    区块链未来3到5年应该会出现行业井喷式发展,相应所需的人才必定水涨船高,每一个开发人员都不应该错过这样的机会。
    区块链涉及的技术很多,很多开发人员看了一些资料后,感觉好像懂了,又好像没懂。
    如何系统的学习区块链技术,是很多想从事区块链开发的程序员的问题,我们来一起讨论下,希望可以帮助更多的人掌握区块链开发技术。

    确定方向

    从事区块链开发也有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。

    方向不同,需要学习的内容就不一样,如果做基于区块链应用开发,只需要了解一门编程语言(nodejs, Go, Python, C++ 等), 大概了解区块链的原理,不一定要深入,当能理解越深入开发应用就越顺。
    如果做区块链基础开发,就需要了解加密算法,P2P通信,共识算法等等。

    投入时间学习-动手实践

    由于区块链涉及的技术很多,可以相对各个技术有一个概念了解,再逐步深入原理。

    当你在学习了解概念的时候,必定会产生很多疑问, 例如我们经常可以看到一句: 比特币的共识机制是通过工作量证明(POW)来实现的。
    就有了新疑问:什么是工作量证明,进一步了解,它是通过验证的一个特定结果,就能确认参与者完成了相应的工作量(不理解没关系,可以简单为,张三考试考了100分,就确认张三肯定好好学习了)。
    这时又有了新的疑问,比特币在验证什么样的结果,这时你又需要了解密码学和Hash。

    逐步深入的过程也是解答疑问的过程,需要我们善用Google搜索。

    如果觉得已进理解一个概念或原理时,可以尝试动手实现它,如在理解挖矿后,可以写代码模拟挖矿过程。

    学习是一个长期的过期,没有捷径,必须得多读书,读代码,写代码。

    学习资源介绍

    下面是一些学习资源的介绍,相信对大家有帮助

    展开全文
  • 作者认为最快的学习区块链的方式是自己创建一个,就跟随作者用Python来创建一个区块链。对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块链是怎样实现的。但是完全搞懂区块链并非易事,我喜欢在实践...
    作者认为最快的学习区块链的方式是自己创建一个,就跟随作者用Python来创建一个区块链。
    对数字货币的崛起感到新奇的我们,并且想知道其背后的技术——区块链是怎样实现的。

    但是完全搞懂区块链并非易事,我喜欢在实践中学习,通过写代码来学习技术会掌握得更牢固。通过构建一个区块链可以加深对区块链的理解。在学习区块链技术之前,先来了解一下什么是hash算法。


    安全散列算法(Secure Hash Algorithm,缩写为SHA),是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的讯息不同,它们对应到不同字串的机率很高;而SHA是FIPS所认证的五种安全杂凑算法。这些算法之所以称作“安全”是基于以下两点(根据官方标准的描述):1、由讯息摘要反推原输入讯息,从计算理论上来说是很困难的。2、想要找到两组不同的讯息对应到相同的讯息摘要,从计算理论上来说也是很困难的。任何对输入讯息的变动,都有很高的机率导致其产生的讯息摘要迥异。


    我们知道区块链是由区块的记录构成的不可变、有序的链结构,记录可以是交易、文件或任何你想要的数据,重要的是它们是通过哈希值(hashes)链接起来的。下面就来通过python代码来了解hash的特性。在python里是使用hashlib来实现这个功能的。
    hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512. 另外,模块中所定义的 new(name, string=”) 方法可通过指定系统所支持的hash算法来构造相应的hash对象。
    简单例子代码如下:
    #python 3.6  
    #蔡军生   
    #http://blog.csdn.net/caimouse/article/details/51749579  
    #
    from hashlib import sha256
    
    sha = sha256('abc'.encode()).hexdigest()
    print('abc :', sha)
    
    sha = sha256('abc1'.encode()).hexdigest()
    print('abc1 :',sha)
    
    结果输出如下:
    abc : ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
    abc1 : dbfcfd0d87220f629339bd3adcf452d083fde3246625fb3a93e314f833e20d37
    在这里是产生256位的HASH摘要,64个字符的16进制的文本字符串。

    每次计算一次hash是需要大量的计算,这样非常消耗CPU资源,那么CPU就非常费电,需要大量的电力。下面就来做一个简单的工作量证明例子。


    理解工作量证明
    新的区块依赖工作量证明算法(POW)来构造。PoW的目标是找出一个符合特定条件的数字,这个数字很难计算出来,但容易验证。这就是工作量证明的核心思想。为了方便理解,举个例子:
    假设一个整数 x 乘以另一个整数 y 的积的 Hash 值必须以 0 开头,即 hash(x * y) = 00...ac23dc。设变量 x = 5,求 y 的值?
    用Python实现如下:
    #python 3.6  
    #蔡军生   
    #http://blog.csdn.net/caimouse/article/details/51749579  
    #
    from hashlib import sha256
    
    x = 5
    y = 0  # y未知
    
    while True:
        sha = sha256(f'{x*y}'.encode()).hexdigest()
        print(sha)
        #if sha[:4] == "0000":
        #    break
        if sha[:2] == "00":
            break 
        y += 1
        
    print(f'The solution is y = {y}')
    

    输出结果如下:

    ...

    63727ee4cff30e597899af01a4a355ea91e54c9a055e1da18e25b89dfa90352c
    75ca28395bfc9ad121e29198a3124a330e4ad2c10463dd7b9bae68f48423fe71
    23d2c2e28f2dcbc3ffa0437156d70329f119c70f2f9a72479efe4e33111fc6d7
    6c6ece85b5d6ea8c5b1901b34909d170569478006b74472e49d7535ab4b4a94d
    c63bd0d975c69098ee4739650068349dd2812231b5b0a17c0772093ef07bbebd
    00150bc11aeeaa3cdbdc1e27085b0f6c584c27e05f255e303898dcd12426f110
    The solution is y = 530

    在这里计算了530遍才找到一个结果。

    在比特币中,使用称为Hashcash的工作量证明算法,它和上面的问题很类似。矿工们为了争夺创建区块的权利而争相计算结果。通常,计算难度与目标字符串需要满足的特定字符的数量成正比,矿工算出结果后,会获得比特币奖励。

    深入浅出Matplotlib
    https://edu.csdn.net/course/detail/6859

    深入浅出Numpy
    http://edu.csdn.net/course/detail/6149 

    Python游戏开发入门

    你也能动手修改C编译器

    纸牌游戏开发

    http://edu.csdn.net/course/detail/5538 

    五子棋游戏开发

    http://edu.csdn.net/course/detail/5487
    RPG游戏从入门到精通
    http://edu.csdn.net/course/detail/5246
    WiX安装工具的使用
    http://edu.csdn.net/course/detail/5207
    俄罗斯方块游戏开发
    http://edu.csdn.net/course/detail/5110
    boost库入门基础
    http://edu.csdn.net/course/detail/5029
    Arduino入门基础
    http://edu.csdn.net/course/detail/4931
    Unity5.x游戏基础入门
    http://edu.csdn.net/course/detail/4810
    TensorFlow API攻略
    http://edu.csdn.net/course/detail/4495
    TensorFlow入门基本教程
    http://edu.csdn.net/course/detail/4369
    C++标准模板库从入门到精通 
    http://edu.csdn.net/course/detail/3324
    跟老菜鸟学C++
    http://edu.csdn.net/course/detail/2901
    跟老菜鸟学python
    http://edu.csdn.net/course/detail/2592
    在VC2015里学会使用tinyxml库
    http://edu.csdn.net/course/detail/2590
    在Windows下SVN的版本管理与实战 
    http://edu.csdn.net/course/detail/2579
    Visual Studio 2015开发C++程序的基本使用 
    http://edu.csdn.net/course/detail/2570
    在VC2015里使用protobuf协议
    http://edu.csdn.net/course/detail/2582
    在VC2015里学会使用MySQL数据库
    http://edu.csdn.net/course/detail/2672



    展开全文
  • 问题导读1.你对区块链了解多少?2.区块链与大数据、云计算是什么关系?3.区块链原理是什么?4.区块链该如何学习?5.区块链有哪些应用?6.区块链与我们普通开发有什么区别...
        

    问题导读

    1.你对区块链了解多少?
    2.区块链与大数据、云计算是什么关系?
    3.区块链原理是什么?
    4.区块链该如何学习?
    5.区块链有哪些应用?
    6.区块链与我们普通开发有什么区别和相同之处?



    1.区块链与比特币的关系
    区块链想学习,相信或多或少都听说过。那么区块链是什么?是否等同于比特币?这是我们刚开始了解区块链,可能产生的困惑。即使你不是IT行业,相信也知道比特币,那么在网络上看到那么多的区块链,又是什么鬼?
    比特币:是其中一种最火、最为人熟知的区块链的一种应用
    区块链是一种技术,基于区块链的技术,可以有很多应用
    也就是说,通过区块链技术可以实现比特币。那么同样它也开始有其它应用。比如现在的以太坊,以及超级账本Hyperledgar。

    上面我们解除了比特币与区块链之间的混淆。

    2.大数据、云计算与区块链之间的关系
    在我们弄清楚上面问题之后,如果我们接触了大数据,可能还会有一些问题?区块链与大数据之间是什么关系?总结如下

     1、区块链使大数据极大降低信用成本

      我们未来的信用资源从何而来?其实中国正迅速发展的互联网金融行业已经告诉了我们,信用资源会很大程度上来自大数据。

      通过大数据挖掘建立每个人的信用资源是很容易的事,但是现实并没有如此乐观。关键问题就在于现在的大数据并没有基于区块链存在,这些大的互联网公司几乎都是各自垄断,导致了数据路孤岛现场。

      在经济全球化、数据全球化的时代,如果大数据仅仅掌握在互联网公司的话,全球的市场信用体系建立是并不能去中心化的,如果使用区块链技术让数据文件加密,直接在区块链上做交易,那么我们的交易数据将来可以完全存储在区块链上,成为我们个人的信用紫云,所有的大数据将成为每个人产权清晰的信用资源,这也是未来全球信用体系构建的基础。


      2、区块链是构建大数据时代信任基石

      区块链因其“去信任化、不可篡改”的特性,可以极大的降低信用成本,实现大数据的安全存储。将数据放在区块链上,可以解放出更多数据,使数据可以真正“流通”起来。基于区块链技术的数据库应用平台,不仅可以保障数据的真实、安全、可信,如果数据遭到破坏,也可以通过区块链技术的数据库应用平台灾备中间件进行迅速恢复。


      3、区块链促进大数据价值流通的管道

      “流通”使得大数据发挥出更大的价值,类似资产交易管理系统的区块链应用,可以将大数据作为数字资产进行流通,实现大数据在更加广泛的领域应用及变现,充分发挥大数据的经济价值。



    上面无论是区块链,还是它们之间的关系,你觉得还是比较抽象,那么我们接着往下看。

    区块链,到底是什么呢?


    一幅漫画让你秒懂

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    区块链技术是指一种全民参与记账的方式。所有的系统背后都有一个数据库,你可以把数据库看成是就是一个大账本。目前是各自记各自的账。

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg


    更多内容参考:彻底明白到底什么是区块链,与大数据,云计算的关系是什么
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=23974

    上面你是否懂得了区块链以及与其大数据,云计算的区别了。

    那么我们就需要深入了解下:

    • 区块链到底有没有价值?

    • 区块链的本质是什么?

    • 区块链包含哪些内容?

    • 区块链包含哪些概念?

    • 区块链有哪些应用?

    • 区块链该如何实现?

    • 区块链可以应用于哪些行业?

    上面一堆的问题,等待我们去解决。继续阅读下面内容。

    3.区块链价值
    也就是我们用区块链来干什么?就以我们当前使用的支付宝系统作为对比。我们平常的交易如下


    640?wx_fmt=jpeg


    上面我们看到,我们的交易是通过第三方机构,支付宝。也就是我们的交易都是由支付宝记录的。我们不想通过支付宝,直接交易是否可以。在没有区块链之前,两个人交易是存在很大风险的。比如赖账怎么办?如果通过支付宝,那肯定是有记录的。但是支付宝,也存在一个风险,支付宝服务器坏掉了,那么记录就全没了。虽然这种情况不可能出现。但是如果使用区块链,比如比特币,是全球性的,而且如果你篡改记录,需要修改51%的机器,这样几乎是不可能的。如果是区块链交易如下图


    640?wx_fmt=jpeg


    其实在从一个方面来讲,如果只有区块链,支付宝、银行等其实是可以不能存在的。这些机构就已经成为了冗余。虽然实际中可能不完全这样,但是理论上这些都是可以省去的。

    上面只是区块链的一个应用,区块链的应用是非常广泛的,比如区块链已经可以用来保存党员信息,用于医疗记录等,这些都是非常有价值的。
    更多参考
    认识区块链:到底有没有价值
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24399

    区块链价值,还可以应用于物联网、身份管理、供应链、金融服务、医疗保健、保险、政府等等。更多参考
    区块链有哪些应用场景
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24109

    通过上面,或许你已经看到了区块链还是有点用的。但是对区块链认识还是有些模糊的,比如

    • 金融领域为什么要使用区块链技术?有什么实质性的好处?

    • 所有的区块链都需要挖矿吗?

    • 区块链是软件吗?是用什么程序写的?

    • 什么是公有链?什么是私有链?什么是联盟链?


    等等,更多参考下面文章
    你想知道区块链问题总结
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24513


    4.该如何学习
    那么接着你可能想已经认识了区块链,或则想接下来改如何学习,该如何从整体了解区块链开发。

    如何学习
    当我们学习一门知识的时候,经常会不知道该如何下手。该如何入门区块链,该如何操作。下面文章交给你了,不止入门区块链可以这么做,入门其它技术也是可以借鉴的。更多参考下文
    新手该如何学习区块链的
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24207



    5.区块链常识
    我们知道了如何学习,下面我们正式进入区块链的一些概念、常识。比如该如何理解区块链,区块链有哪些分类,区块链的特征



    什么是区块链?

    区块链定义方式很多:
    比如
    1.区块链是一个分布式数据库
    2.区块链是一块一块的数据,一个一个的数据块。将具体的数据打包在一个区块里。
    3.区块链,是实现了数据公开、透明、可追溯的产品的架构设计方法。
    4.区块链是由一连串使用密码学方法产生的数据块组成的分布式账簿系统,每个数据块都包含大量的交易信息,用于验证其信息的有效性并生成下一个区块.

    哪些分类:
    公有链,私有链,联盟链,甚至还有侧链。等更多参考:
    相关概念推荐
    从技术角度和应用角度思考区块链
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24321


    区块链包含术语概念【27术语整理汇总】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24152


    区块链哈希SHA256介绍包括如何计算的
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24105


    区块链概念1:Hash 算法
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24082


    区块链有哪些分类及哪些适合场景
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24067


    通过上面你可能对区块链有了一些感性的认识。明白哦区块链是这样的。

    我们当前都是停留于对于区块链的认识,理论方面的知识,接着我们来看看区块链机制

    6.区块链机制

    区块链产业链主要包括基础网络层、中间协议层及应用服务层。


    640?wx_fmt=png 


    1)   基础网络层

    基础网络层由数据层、网络层组成,其中数据层包括了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等。

    2)   中间协议层

    中间协议层由共识层、激励层、合约层组成,其中共识层主要包括网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要包括各类脚本、算法和智能合约,是区块链可编程特性的基础。

    3)   应用服务层

    应用服务层作为区块链产业链中最重要的环节,则包括区块链的各种应用场景和案例,包括可编程货币、可编程金融和可编程社会。

    当然还有其它层,这里主要介绍三层
    区块链技术:指多个参与方之间基于现代密码学、分布式一致性协议、点对点网络通信技术和智能合约编程语言等形成的数据交换、处理和存储的技术组合。


    640?wx_fmt=png 

    更多参考:
    区块链系统入门【推荐】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24512
    更多相关内容推荐:
    Fabric架构深度解读:从技术方面解决区块链信任问题
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24300


    从架构师角度解读区块链技术?
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24229


    区块链不可篡改性详解
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24088


    区块链架构设计|语言实现等介绍
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24024




    7.区块链开发

    了解了那么多我们该如何开发区块链。区块链开发平台有三个:
    1.比特币
    2.以太坊
    3.IBM HyperLedger
    上面三个平台似乎以太坊更多一些。当然三个都是可以选择的,看你想做什么。

    目前区块链分为区块链1.0,区块链2.0,区块链3.0

    1.区块链1.0:数字货币
    2.区块链2.0:以太坊
    3.区块链3.0:智能社会


    区块链3.0
    区块链3.0是价值互联网的内核。区块链能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储,从而实现资产在区块链上可被追踪、控制和交易 。
    价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅仅能够记录金融业的交易,而是几乎可以记录任何有价值的能以代码形式进行表达的事物:对共享汽车的使用权、信号灯的状态、出生和死亡证明、结婚证、教育程度、财务账目、医疗过程、保险理赔、投票、能源。
    因此,随着区块链技术的发展,其应用能够扩展到任何有需求的领域,包括审计公证、医疗、投票、物流等领域,进而到整个社会。


    目前我们还处于第二阶段。所以区块链可能还有段路需要走。但是这并不耽误我们开发。

    开发入门的详细更多参考:
    彻底搞懂区块链开发入门
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24239

    技术汇总
    我们知道了开发平台,那么区块链有哪些开发技术,有没有统计区块链都是使用哪些技术,答案是有的,看下文。介绍了整个技术大全?什么是技术大全,这些技术你可能用不到,但是他可以用来开发区块链。区块链就好比一个项目,实现的语言有多种。如同我们开发,会Java可以开发,会Python可以开发,但是你无需Java和Python都学习,当然你都学习了也是可以的。这里面介绍了区块链的技术比如共识算法、密码学、Ethereum智能合约开发等。
    里面包含了5大部分:
    1.编程基础

    2.区块链基础

    3.区块链进阶

    4.区块链高级

    5.区块链实战


    区块链工程师学习大纲【线路指导】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24168


    区块链开发go语言
    上面介绍了技术汇总,这里重点介绍下区块链开发语言go语言,为啥重点介绍它那?go语言由于并发能力比较好,最好使用go来实现区块链。那么区块链该如何学习,下面详细介绍了。而且包括书籍,视频等。
    区块链开发语言之go语言学习线路指导
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24344


    开发环境搭建
    上面学习了那么多,可是没有实践还是为0,我们需要切实的实践。


    这里主要以以太坊的环境搭建:
    以太坊有许多不同语言的客户端实现(即多种与以太坊网络交互的方法),包括C++, Go, Python, Java, Haskell等等。为什么需要这么多实现?不同的实现能满足不同的需求(例如Haskell实现的目标是可以被数学验证),能使以太坊更加安全,能丰富整个生态系统。


    我使用的是Go语言实现的客户端geth,该客户端也是官方推荐使用的客户端,稳定性较好,并且资料相对较多。


    安装命令:
    打开终端窗口,依次输入以下命令:
    640?wx_fmt=png 

    安装测试:
    安装完成后在终端输入:

    [Bash shell] 纯文本查看 复制代码

    ?

    1
    geth -help


    如果显示出各种参数提示信息,则说明安装成功。
    更多参考


    链接: https://pan.baidu.com/s/1MumCfAJQU642l3VPuLhjvg 密码: 9qz1
    更多资料大家可搜索

    代码实现

    我们会搭建环境,想了解更多的代码实现,可参考下面内容
    一个简单的区块链代码实现讲解及下载
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24016


    手把手叫你用Python创建区块链包括链流程,代码实现等
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24001

    基于Docker容器百行代码实现自己的分布式区块链【python版】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24347


    8.区块链技术应用

    我们对开发有了一定了解和实践之后,我们可以进一步了解区块链可以用来做哪些项目。比如可以用来构建电商平台。那么用区块链该如何实现电商平台。它有哪些功能。比如我们需要在项目中考虑实现主要功能:

    640?wx_fmt=png

    • 商品上架:应用应该支持卖家上架商品进行销售。我们将实现让任何人自由上架商品的功能。

    • 商品浏览与搜索:应用应该支持买家方便地浏览商品列表。我们会实现浏览商品的功能,以及 基于商品类别、拍卖时间等条件进行查询的功能。

    • 商品拍卖:跟eBay一样,我们会实现维科瑞拍卖方式的商品竞价销售。由于以太坊 上的一切交易都是公开的,因此我们的实现将会与中心化环境下有所不同。

    • 资金托管:一旦出价结束,商品拍卖有了赢家以后,我们会创建由胜出的买方、卖方和任意 第三方参与的托管合约,由托管合约来管理交易资金。

    • 托管资金保护:为了保护托管资金,我们将采用多重签名(2/3)来实现防欺诈保护,即三个参与者有两个同意时, 才会将托管资金释放给卖方,或是将托管资金返还给买方。


    更多可参考下文
    用区块链构建电商平台
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24252

    相关推荐
    区块链详解及在教育行业的应用
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=23937

    9.区块链产品

    如果我们只是看文章,那怕是看了开发相关内容,其实还是不太明白区块链产品到底是什么样子的?
    其实个人认为区块链与我们所接触的项目没有什么区别?主要是实现技术,比如在我们交易过程中,我们通过web转账,区块链外部操作方面没有什么区别,同样徐亚输入金额,需要输入转账给谁。也就是说技术和实现是有区别的,但是业务差别是不大的。


    对区块链的认知,可以进入比特币官网
    https://bitcoin.org/zh_CN/getting-started

    下载钱包
    640?wx_fmt=png 

    选择钱包

    640?wx_fmt=png 


    选择Bitcoin Core,进行安装,然后同步,当然网络比较慢一些。

    更多相关内容大家可查看下面视频
    链接: https://pan.baidu.com/s/1LF7Pd1A9GurWTUbS0Hkyig 密码: e3w5

    10.学习资料推荐


    区块链项目开发指南【两本书籍经典推荐】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24293


    区块链原理、设计与应用
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24497


    京东区块链技术实践白皮书下载【3月份最新】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24146


    美国政府发布区块链医疗研究论文下载【15篇】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24053


    解码区块链书籍【1215页】
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=23892


    Go并发编程实战
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=20649


    区块链技术指南
    http://www.aboutyun.com/forum.php?mod=viewthread&tid=24519




    如果你想学习更多区块链相关视频和资料,大家可关注公众号

    640?wx_fmt=jpeg

    回复888,获取5阶段区块链视频。部分内容如下:


    640?wx_fmt=png


    如果你也是区块链爱好者,可以加微信w3aboutyun,进入about云技术讨论铁粉群。


    展开全文
  • 很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源。 一、 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取...

    很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源。

    一、 以太坊和区块链的关系

    从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了技术架构和体系,称之为区块链技术。从比特币提取的区块链技术称之为区块链1.0时代,那个时候的应用主要以电子货币和去中心化交易为主,比如各种山寨币。而以太坊将区块链带入了2.0的时代,区块链2.0不是推翻了1.0,而是在1.0的基础上实现了区块知晓、价值知晓、图灵完备,并进行了细节优化,从而形成了以智能合约为特色的区块链2.0。比特币定位于一个应用,而以太坊定位于平台,你可以在这个平台上利用智能合约做各种应用。

    所以,学习区块链,直接学习以太坊就好。推荐汇智网的以太坊DApp实战开发入门教程,通过在线编程环境和循序渐进的知识点引导,可以迅速理解并上手区块链应用开发。

    二、以太坊入门的方法

    对于没有接触过区块链的人,建议先参会以太坊的日常应用。

    1、使用客户端

    最流行的geth使用指南电子书:https://pan.baidu.com/s/1k8gJ1VihtXkOpCfPdB6Pdg

    2 、挖矿

    挖矿的教程很多,一般分布在各个矿池,这里推荐一个国内矿池的教程,并且可以加入各个矿池的群去交流一下。国内的矿池有www.f2pool.com,www.bw.com 等几大矿池。

    3、浏览公有链的区块信息

    在经历以上事情后,可以通过区块链浏览器去查看自己的账户和交易,更直观感受。
    通过以上的操作,基本可以算对区块链有了一个初步的了解和感知。

    三、以太坊各个项目说明

    以太坊发布以后,有 多个客户端,同时也支持多个平台,初学者往往被各种各样的客户端弄迷糊,本文进行了详细的总结。

    以太坊客户端以语言进行分类,在github上分成了不同项目,源代码地址:https://github.com/ethereum/,虽然以太坊客户端众多,但是有两个共同特点:

    1. 同一语言的客户端在不同平台上的使用是完全相同的
    2. 不同语言的客户端(mist、geth、eth等等)之间在同一个平台(linux、windows或OSX)上共用一样的应用配置,同时其命令行可使用的参数也是一致。

      下面就以github上的项目为分类说明各个客户端的用途和特点:

    go-ethereum项目

    开发语言:go语言
    客户端文件:Geth
    界面:命令行
    适用平台:windows、linux和OSX
    功能和特点:该项目是使用最广泛的以太坊客户端,大部分节点都是运行的该客户端,教程和例子也最多,推荐使用,可用于挖矿,组建私有链,管理账号,部署智能合约等常用功能,不可以编译智能合约。

    webthree-umbrella项目

    此项目包含3个客户端
    开发语言:c++
    客户端文件:AlethZero、Mix和Eth
    使用平台:windows、linux和OSX
    界面:图形化界面
    功能和特点:该项目严格来说是cpp-ethereum 项目的一个shell,是以太坊基金会的前CTO,Gavin Wood主持编写的,所以人气也很高,易用性也很好。AlethZero是图形化的钱包客户端,对应的是Geth的功能,不过是全图形化的。但是随着后续以太坊基金会主推的图形化钱包Mist的推出,渐渐没落。Mix 是智能合约(以太坊称为DAPP)的开发IDE,可以支持智能合约(DAPP)的编写、调试,部署,全图形化界面,但是目前已经停止开发了,开发组转向了Remix。Eth是C++编写的命令行客户端功能和Geth一样。

    Mist项目

    开发语言:JavaScript
    客户端文件:Mist(目前使用Ethereum-Wallet的名称)
    使用平台:windows、linux和OSX
    界面:图形化界面
    功能和特点:该项目是以太坊基金会主推的项目,Mist定位不只是一个钱包,而是将来DAPP(智能合约的应用APP)市场,类似于苹果市场,在这里可以有你的账号,可以浏览、发布和买卖以太坊的DAPP应用。目前因为开发还不够全面,名称暂时显示为Ethereum-Wallet,作用也很简单,就是一个钱包的功能。强烈推荐,未来的主流客户端。

    solidity项目

    开发语言:C++
    客户端文件:solc
    使用平台:windows、linux和OSX
    界面:命令行界面
    功能和特点:该项目是以太坊智能合约(DAPP)的编程语言,使用solc作为编译程序,该项目主要用于编译,严格来说是一个基本的编译平台,一般开发可用MIX替代。

    browser-solidity项目

    开发语言:C++
    客户端文件:浏览器中显示
    使用平台:windows、linux和OSX
    界面:浏览器界面
    功能和特点:该项目是智能合约浏览器版本的开发环境,可以支持在浏览器中直接开发、调试和编译,对于初学者来说,可以快速上手,不需要安装,非常方便,直接访问地址使用:https://ethereum.github.io/browser-solidity/

    pyethereum项目和ethereumj项目

    pyethereum项目是用python语言编写的以太坊客户端,ethereumj项目是用JAVA语言编写的以太坊客户端,只是语言不同,和前面GO语言编写的客户端Geth的功能完全相同。

    etheminer项目

    开发语言:C++
    客户端文件:ethminer
    使用平台:windows、linux和OSX
    界面:命令行
    功能和特点:该项目是cpp-ethereum项目的一部分,用于和Geth配合进行GPU挖矿,比CPU挖矿效率高100多倍,也可以用于矿池挖矿

    四、以太坊常用网址(含智能合约)

    以太坊有很多有用的网站都分布在国外,找起来很费劲,这里总结一下

    1、以太坊官方网站:https://ethereum.org/

    该网站为以太坊的官方网站,有详细的以太坊介绍和各种连接地址,推荐详细看一看

    2、以太坊所有源码地址(官方):https://github.com/ethereum/

    该github为以太坊所有项目的源码地址,以及更新和发布。

    3、以太坊Homestead文档地址(官方):http://www.ethdocs.org/en/latest/index.html

    该网站为以太坊的详细介绍文档,基本包括了以太坊的方方面面,如果有什么不清楚的原理和应用,基本都可以在这里找到答案和线索。

    中文版电子书:https://pan.baidu.com/s/18nrVXrZ26ubcgrOGi1iwZA

    4、以太坊网络状态地址(官方):https://ethstats.net/

    该网站能全面的显示网络状态,包括节点、难度、算力等等,非常直观

    5、以太坊资源网站(官方):http://ether.fund/

    该网站提供了以太坊很多应用资源,比如市场情况、合约辅助工具、已发布的智能合约、以太坊网络、DAAP等,方便开发和发布。

    6、Solidity编程文档(官方):http://solidity.readthedocs.io/en/latest/

    该网站提供了以太坊Solidity语言的全面参考手册,学习Solidity语言必备。

    中文版电子书:https://pan.baidu.com/s/18YG0QDVjH9L2B02TnIqVvw

    7、以太坊网络扫描(官方):http://etherscan.io/

    该网站提供了以太坊网络的各种状态,比如帐号的详情、TOKEN详情,难度详情、区块详情,非常方便和直观。

    8、以太坊官方博客:https://blog.ethereum.org/

    9、以太坊wiki百科地址:https://github.com/ethereum/wiki/wiki

    在这里有白皮书、黄皮书以及开发指南,比较全面。

    10、以太坊的gitter的实时交流网站:https://gitter.im/orgs/ethereum/rooms

    该网站是以太坊的gitter chart的网站,根据项目分了很多房间,只要你提问题,大部分有人回答,很不错,不过只能英语交流。

    11、以太坊的官方论坛:https://forum.ethereum.org/

    官方论坛,没什么好说的,我遇到的几个问题,都是在这里找到的答案

    12、以太坊第三方强大的IDE:https://live.ether.camp/

    这个是第三方发布的Solidity IDE,我看了一下,很强大,强大到还不太会用,他的目标是企业级IDE,老外用的较多。

    13、以太坊开发框架Truffle说明书:http://truffle.readthedocs.io/en/latest/

    以太坊目前很流行的开发框架Truffle的说明书,这个框架比较流行。

    中文版电子书:https://pan.baidu.com/s/1mTXw8g7zgCaJkX6QZiejVQ

    14、以太坊开发框架dapple说明书:http://dapple.readthedocs.io/en/master/

    这个开发框架是在gitter chart上看到的,感觉用的人不多,先观察

    15、以太坊官方推荐开发框架Meteor说明书:https://github.com/ethereum/wiki/wiki/Dapp-using-Meteor

    免费教程:http://www.hubwiz.com/course/55b87a7b3ad79a1b05dcc339?affid=csdnvat

    这个开发框架是以太坊官方推荐的,写进了以太坊的官方wiki,值得学习,当然,以太坊官方经常转换方向,以后换别的也没准,

    展开全文
  • 前言-如何学习区块链

    2018-01-15 14:18:09
    【汇新云】-区块链学习社区为大家定期更新文章 ...如何系统的学习区块链技术,是很多想从事区块链开发的程序员的问题,我们来一起讨论下,希望可以帮助更多的人掌握区块链开发技术。 确定方向

    汇新云】-区块链学习社区为大家定期更新文章

    区块链未来3到5年应该会出现行业井喷式发展,相应所需的人才必定水涨船高,每一个开发人员都不应该错过这样的机会。

    区块链涉及的技术很多,很多开发人员看了一些资料后,感觉好像懂了,又好像没懂。

    如何系统的学习区块链技术,是很多想从事区块链开发的程序员的问题,我们来一起讨论下,希望可以帮助更多的人掌握区块链开发技术。

    确定方向

    从事区块链开发也有很多方向,如:区块链应用开发人员、区块链架构师、底层核心开发、共识算法研究等等。

    方向不同,需要学习的内容就不一样,如果做基于区块链应用开发,只需要了解一门编程语言(nodejs, Go, Python, C++ 等), 大概了解区块链的原理,不一定要深入,当能理解越深入开发应用就越顺。

    如果做区块链基础开发,就需要了解加密算法,P2P通信,共识算法等等。

    投入时间学习-动手实践

    由于区块链涉及的技术很多,可以相对各个技术有一个概念了解,再逐步深入原理。

    当你在学习了解概念的时候,必定会产生很多疑问, 例如我们经常可以看到一句: 比特币的共识机制是通过工作量证明(POW)来实现的。

    就有了新疑问:什么是工作量证明,进一步了解,它是通过验证的一个特定结果,就能确认参与者完成了相应的工作量(不理解没关系,可以简单为,张三考试考了100分,就确认张三肯定好好学习了)。

    这时又有了新的疑问,比特币在验证什么样的结果,这时你又需要了解密码学和Hash。

    逐步深入的过程也是解答疑问的过程,需要我们善用Google搜索。

    如果觉得已进理解一个概念或原理时,可以尝试动手实现它,如在理解挖矿后,可以写代码模拟挖矿过程。

    学习是一个长期的过期,没有捷径,必须得多读书,读代码,写代码。

    学习资源介绍

    下面是一些学习资源的介绍,相信对大家有帮助

    比特币:一种点对点的电子现金系统-英文

    比特币:一种点对点的电子现金系统-中文

    以太坊白皮书-英文

    以太坊白皮书-中文

    区块链技术指南-电子书

    区块链开发指南-纸书

    比特币 - 官网

    以太坊 - github

    超级账本Hyperledger

    ETHFANS - 社区




    职业参考

    区块链解决方案十大产品经理

    展开全文
  • 这里把学习区块链过程中的一些资料进行索引,比特币知识重点推荐中本聪白皮书和《精通比特币》,区块链技术及工程应用,重点推荐IBM的Hyperledger系列课程。一、目标比特币发展历史,挖矿以及相关应用区块链底层技术...
  • 最近因为项目需要,都在学习区块链,提到区块链,大家第一反应肯定是比特币,在我最刚开始学习的时候是去看的比特币的相关知识。这次先讲解大概的概念。后续再写详细的技术内容。 零基础学区块链要多久 1、了解层面...
  • 很多人迷惑于区块链和以太坊,不知如何学习,本文简单说了一下学习的一些方法和资源。一、 以太坊和区块链的关系 从区块链历史上来说,先诞生了比特币,当时并没有区块链这个技术和名词,然后业界从比特币中提取了...
  • 什么是区块链?从字面上看:区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的...
  • 技术发展迅速!...学习区块链技术,即使还处于起步阶段。 关注区块链,它是2018年最受欢迎的技术。 你是否正在寻找一个投入时间学习区块链的理由,以期成为用户,投资者或开发者?这是我的10个选...
  • 1区块链:技术驱动金融
 
 作者: 阿尔文德·纳拉亚南等 豆瓣评分:8.5
 本书从数字货币及智能合约技术层面,解读了区块链技术在金融领域的运用。“如果你正在寻找一本在技术层面解释比特...
  • 如何系统的学习区块链技术,是很多想从事区块链开发的程序员的疑问,本文内容有点多,一次吸收不完可以收藏以后再用。 苦口婆心写在前面: 从事区块链开发有很多方向,如:区块链应用开发人员、区块链架构师、底层...
  • 有一次,我听到有人问李笑来:一个传统行业,怎么才能抓住区块链技术的机会呢?李笑来说,这个问题问得就有问题。面对一种新技术,只要你站在原来的行当里问,我怎么抓住这个新机会呢?最后的结果基本都是抓不住啊。...
  • GitChat 作者:李艳鹏 关注微信公众号:GitChat 技术杂谈 ,这里一本正经的讲技术 背景比特币的发展历程自从2009年一个自称中本聪(对,是日本人…)的人在一个隐秘的密码学讨论组上发布了一篇叫做《比特币:一种...
  • 这个五一假期,集中时间和精力学习(恶补)了一下区块链有关的概念,看了一些链圈的专家和从业人士公开发表的演讲、观点等,也关注了一些币圈的微信公众号,看了看币圈的资深玩家对一些主流币的分析,大有豁然开朗之...
  • 引言给迷失在如何学习区块链技术的同学一个指引,区块链技术是随比特币诞生,但区块链技术支撑着比特币的运行,因此要搞明白区块链技术,应该先了解下比特币。比特币如果你是还不知比特币是什么,那就看看比特币是...
  • C#区块链基础入门,学习路线图 一、1分钟短视频《区块链100问》了解区块链基本概念 http://tech.sina.com.cn/zt_d/blockchain_100/ 二、C#区块链 智能合约,基于NEO开源区块链学习,NEO小蚁是国内市值排名第一的...
  • 随着区块链应用热度的持续走高,大家对于区块链技术的学习也愈发感冒。区块链在诸多方面应用的成功案例,让我们对其未来充满信心。特此千锋小编献上区块链开发入门学习线路图(小白珍藏版)。 新科技的出现,通常...
  • 如何学习区块链技术

    2018-02-10 11:52:58
    ...
  • 2019年10月,中共中央政治局集体学习区块链技术发展现状及趋势。2020年4月20日,国家发改委首次明确新型基础设施的范围,基于区块链的新技术基础设施是其中重要组成部分。那么,区块链如何演绎基础设施的角色,...
1 2 3 4 5 ... 20
收藏数 20,607
精华内容 8,242
关键字:

0基础能学习区块链吗