区块链入门教程之从比特币到以太访再到智能合约从架构概念到应用实战(DAPP)(一、介绍)

区块链入门教程之从比特币到以太访再到智能合约从架构概念到应用实战(DAPP)(一、介绍)

作者: AlexTan

CSDN: http://blog.csdn.net/alextan_

Github: https://github.com/AlexTan-b-z

e-mail: [email protected]

前言

(ps:这是本博主撰写的第二部系列作品,第一部是写的java入门教程,受到了不少读者的喜欢,如果你也喜欢的话,欢迎关注哟!)

本教程主要面向区块链新手,用通俗易懂的方式讲解区块链技术。

博主密集学习了快半年的区块链技术吧,看了不少相关书籍,也看了不少相关技术博文、文章、收费视频等等,不过书讲得好的基本上微乎其微,博客文章呢又太分散,讲得稍微系统一点的就得收费了(博主也是购买了的),但是不管收费的还是不收费的,还是不够详细、系统,因此,在这里博主本着以撰写一篇详细而又系统,让一般稍懂技术的朋友们也能看懂的教程为目的,撰写这篇博客。希望自己能为整个区块链社区贡献出自己的一点绵薄之力,欢迎大家提出建议,互相学习!在这里强烈推荐精通比特币这本书,区块链的技术都来源于此。

在写这篇博客之前,先说说自己学习区块链技术时的感受吧。在我最开始看区块链相关技术书籍时,越看心里越澎湃,因为区块链技术在于互联网技术界真的算是一场技术革命,颠覆了以往所有的程序设计思想,以往的不管是C/S端还是B/S端都离不开中心化的服务器中心,所以才有前段时间facebook信息泄露的事件。说说发生在自己身边的一个实例吧,前段时间一个游戏广告商的推销人员加了我的微信,加我的时候发的备注还发了我的姓名,后来我问她怎么知道我的姓名的时候,她直接给我回复说:“这在现在很正常的,平台互换资料是常有的事情。” 这真的很是让我感到惶恐!其实以前我主要也是做爬虫、机器学习方面的,我深知信息贩卖的泛滥。在互联网的世界里,我感到自己在互联网的一举一动都是被监控着的,都是透明的,相信不少人也和我有同样的感受。有的场合需要数据、需要信息,比如说淘宝,你买东西的习惯,系统知道你的习惯后会根据你的习惯给你推荐商品;但有的数据你应该是不想让别人知道的,比如说你的详细信息,你和某某的聊天记录等等,你想象一下别人(中心化的平台)拿着你的数据到处贩卖,甚至用机器学习的算法做各种分析,你是什么样的一个人、你有哪些习惯、喜欢干什么、不喜欢干什么、你的个人详细信息、你的人脉圈、交际圈等等都被别人平台一清二楚,那是多么恐怖!

想要从技术上解决这个问题,这在以前的技术里是几乎不可能的,直到区块链的出现。当然,区块链所解决的问题远远不止这些,比如说系统的安全性、如何实现不通过第三方而达成信任的机制等等。其中的去中心化也不是必要的,其实区块链也不一定非要去中心化而已,去中心化也只是其中的一个小点而已。再比如说生活中常见的例子:为什么在技术这么发达的时代,公司、部门等还是用的传统方式来签名(盖章)呢?你是否曾经有过为了盖章,到处跑,到处走,甚至运气不好时遇到心情不好的人还要看别人的脸色,拼命说好话的经历?为什么就不用信息化的方式来解决问题呢? 其最重要的原因,还是因为这些文件要求绝对的私密性,不可伪造性,其实,区块链技术可以很好的解决这个问题。

这里关于区块链的应用就不一一举例了,其具体应用场景区块链技术指南这本书里有详细说明。我觉得区块链最重要的是把所有用户都连接在了一起,不再分客户端服务端,整个系统是由整个人类社会来共同维持,而不是由某个组织机构来控制整个系统。说不定在未来的某一天,所有的硬件资源都能联系结合起来,形成一个整个人类社会共同维持的系统,同时也可以充分利用一些闲置的硬件资源,最大限度地促进人类计算机行业的发展,。当然,也有人说区块链是泡沫,假风口,其实我觉得现在好多人都炒区块链,都给炒坏了,好多都是把区块链当做一个营销手段(其实就是打着区块链的幌子做空气币圈钱),并没有真正发货这个技术应有的作用。不管怎样,我相信这门技术一定会是未来,虽然它现在也有一定的缺陷,但它带来了一种新思想,且确确实实解决了很多以前不能解决的问题,技术都是随着时间慢慢发展的嘛,就像当初互联网刚诞生时一样,谁能想到发展成如今这样呢?

最近区块链很火热,但是在技术上来讲,网上相关的优质文章太少太少,博主看到好多人写教学博客都是以培训收费为目的。首先声明:本博客的文章完全是以技术分享为目的,希望自己也能为整个社区,为区块链技术贡献出自己的一点绵薄之力,大家共同一起学习。当然,如果有好心的大哥大姐们愿意赞助小弟喝点茶,小弟还是非常开心的:

BTC:

区块链入门教程之从比特币到以太访再到智能合约从架构概念到应用实战(DAPP)(一、介绍)_第1张图片
36Q4ivp2bJer9fUQ6uyj4a4yLuTpp28D1T

ETH:

区块链入门教程之从比特币到以太访再到智能合约从架构概念到应用实战(DAPP)(一、介绍)_第2张图片

0x786fda245ff497ce18e53618369a3e730a18fc1b

ENS: alextan.eth

好了,废话不多说,我们开始吧!首先,本文的内容来自于博主看了大量相关书籍、文章、技术白皮书、文档、视频而总结得出的,如有问题,欢迎大家留言讨论。

讲解思路

本文将从最基本的区块链(比特币) 架构\概念 讲起,同时串入以太访架构,最后再通过具体实例,好让读者更深层次的理解以太访是如何运作的。最终达到能让读者在理解区块链技术、理解以太访架构的情况下,个人独立开发DAPP的能力。

本文面向的读者:具有一定的编程经验的技术人员。

可能有人会问,为什么要从 架构\概念 讲起,不直接讲解dapp的开发。如果是只是dapp的开发的话,只写智能合约,相信很多人也已经看过不少写智能合约的文档,会发现要是只是写一个dapp,其实很简单,现在也有很多相关教程,要是只是发一个合约币的话,几分钟就能搞定,要说学习的话也花不了一周的时间,就能写基本的合约代码。但是,如果只是写合约话,你能真正理解区块链技术吗?你知道合约怎么和区块链交互的吗? 那是不可能的。

讲解目录

  1. 比特币架构及相关概念

    1. 加密算法

      1. 哈希(hash)算法

      2. SHA256

      3. 非对称性加密算法

      4. 交易

      5. 数字签名

    2. 区块

      1. 区块结构

      2. 区块头

      3. Merkle Tree

    3. 挖矿和共识

      1. 去中心化共识

      2. 挖矿

      3. 校验区块

      4. 共识攻击

  2. 以太访介绍、架构、相关概念、及其设计原理:

    1. 以太访是什么?

    2. 以太访虚拟机(EVM)

    3. 智能合约

    4. 账户

      1. 账户状态

      2. 消息和交易

      3. 以太坊状态转换函数

    5. (手续)gas费

      1. 以太访中为什么要有Gas

      2. gas与以太币的换算

      3. gasLimit

      4. gas费的作用

    6. 私有链、联盟链、公有链

    7. 以太访挖矿算法

      1. Dagger Hashimoto

      2. Hashimoto算法

      3. Dagger算法

      4. Memory-Hard Function

      5. 两个问题的研究

      6. Dagger Hashimoto算法

      7. 挖矿补充

      8. DAG

      9. epoch

      10. Ethash

    8. RLP

    9. 以太访区块结构

      1. 以太访的区块头

      2. 日志

      3. Uncle块(过时区块)的奖励

      4. 区块难度

    10. 区块链和挖矿

  3. 以太访、web3、智能合约三者之间的关系及智能合约基本讲解

    1. 以太访、web3、智能合约

      1. web3

    2. 智能合约,Solidity的特性介绍

      1. Solidity的调用机制

      2. 调用函数的gas费

      3. 成员类型

      4. Solidity函数中view,constant,pure,payable的使用

      5. Solidity的数据类型

        1. 值类型(Value Type)

          1. 布尔类型(Booleans)

          2. 整型(Integers)

          3. 定长浮点型(Fixed Point Numbers)

          4. 定长字节数组(Fixed-size byte arrays)

          5. 变长(动态分配大小)字节数组(Dynamically-sized byte array)

          6. 有理数和整型常量(Rational and Integer Literals)

          7. 字符串常量

          8. 十六进制常量(Hexadecimal literals)

          9. 枚举(Enums)

        2. 引用类型

        3. 关于栈(stack)

        4. 不同存储的消耗(gas消耗)

  4. 尽请期待...

你可能感兴趣的:(区块链)