区块链学习入门

从18年3月份开始研究区块链,这是个颇有意思的技术,关于区块链的概念我就不啰嗦了,网上一大堆,这里谈谈作为学习者的经历和心得

刚开始接触区块链的时候首先就是不断百度区块链是什么,知乎上有很多大牛给出了比较系统的解释,我也是从这些解释中才知道去中心化和智能合约等名词的,但是还是云里雾里,不过入门区块链最快的方法还是自己先用一遍,以太坊是个很好的体验区块链的平台,我的学习也从以太坊开始。

怎么体验以太坊?没有钱买以太币,买的币额太少交易所的手续费都划不来,但是好在有测试链啊,测试链我是从metamask上知道的,这里要告诉大家的是,入门区块链,尤其是接触当下炒的最热的以太坊,metamask必不可少。

附上下载链接(1积分)

打开metamask后按着流程新建账户以后,左上角就有选择网络的选项,这里选择的是ropsten网络,如果需要获得这个测试网络的以太币,你只需要点击BUY,然后按着提示就可以申请测试链的以太币

有了币之后我就创了两个账户互相转账玩,但是心里还是有很多疑问,这不就是个数字吗?它跟代码和去中心化又有什么关系呢?还是一头雾水啊,连续几天对区块链无从下手,我开始放弃对去中心化这个名词的研究,转而去看智能合约,事实上后来也证明去中心化这个名词并不是开发的主角。

根据网上获取的信息,智能合约不同于平常的书面合约,它是给计算机读的合约,也就是代码,既然是代码那就好办了,终于有一个能实际操作的突破点了,以太坊的智能合约是用solidity编写的,你可以把它当做一种新的语言,学习一门语言先从语法开始,语法很简单,但还是有必要参考一下学习solidity翻译文档。

读了语法,那么可以开始编程了吗?不,还有编译器呢?最好再来个编辑器,上哪找编译器?百度一大堆解释,而我是在truffle里面了解到solc这个ndoejs编译模块的,因为网上有很多教程提到truffle这个框架,建议大家自己亲自体验一下truffle框架使用,以便加深对智能合约和dapp的理解。

使用truffle框架

在一个端口运行的地址服务

刚开始没太在意这个端口运行的意义,后来发现前端竟然可以直接读取不知道从哪来的数据

不由得想到上面那个一堆地址的应该就是它的服务器了,一个dapp这样运行着,但它和链有什么关联呢,看看truffle demo代码之后大有收获

truffle开启的服务就是一条私有链,私有链运行在一台主机中就表现的和平常的服务器没什么区别了,但是公有链上有着大量相同的这样的服务,它们将组成一个网络,而真正的dapp就是运行在这样一个网络中,平常的应用客户端发起的请求全部发往固定的一个(也可能几个但是仍然固定)服务器处理,dapp的请求则被最近的有着和上面类似的服务的节点接收,然后节点根据请求类型,如果只是要获得什么信息那么就直接从自己身上获取然后返回,但如果是进行什么操作(这点不同于传统服务处理)那就会被节点公布于网络中,然后根据共识机制被某个“幸运”的节点处理,而存在于网络中处理dapp请求的被称作矿工。

学习心得:关于共识机制,其实就是支撑着现在大家所说的去中心化的根本元素,旨在从网络中相对公平地选择一个节点处理网络中的请求,百度可以看到关于共识机制的大量介绍,但在我看过的几篇论文中,它的核心技术是被用于解决分布式系统数据一致性问题,何谓分布式系统数据一致性问题?非常简单的你可以联系到这个网络中的各个节点中去,所有的节点要存储着相同的(可以某个时刻不同,但最终会趋于相同)大堆地址相关信息,它们要保证协同工作就必须有一个机制也就是共识机制了(可以看看拜占庭容错等分布式中的解决方案),而去中心化也一直是研究者们最大争论点,实际上在区块链前沿的技术研究中,该采取什么样的共识机制能够最优地平衡效率和去中心一直是核心问题。

大致了解了区块链应用架构后,我开始尝试写一些合约,用的是remix搭配metamask,可以非常快捷地部署合约到链上,亲测真的好使,写好了合约自动编译,点击deploy就可以通过metamask直接部署,injected web3表示使用metamask提供的web3.js对象,

关于web3和在开发中可能用到的infura接口可以参考这里

之后的学习大家就可以通过web3+infura或者remix+meta mask去进行,实际上在现有的区块链开发中,大部分的架构仍然以传统技术为主,而智能合约只负责一些关键信息和逻辑,毕竟运行智能合约需要花的是真钱,而真正的公链开发可以去看看亿书或者阿希链的源码。

猜你喜欢

转载自blog.csdn.net/qq_35513792/article/details/81040894
今日推荐