互联网技术陈昌
学习区块链要学哪些相关知识?
1.《区块链开发指南》
作者多余比特币底层的研究可谓是非常深入,讲解的也非常通俗易懂。
2.《区块链技术指南》
作为国内第一本从技术角度讲解区块链的书籍,值得一读,2016年出版以来一致评价不错。
陈昌前辈作为纸贵的CTO、记得之前的墨链就是基于Hyperledger Fabric的,所以这本书对于Hyperledger 相关开源产品的讲解很透彻。
二、以太坊部分:
1.以太坊介绍:
首先区块链是比较新意的名词,区块链现在在互联网技术比较火爆。要学习这门技术你要先弄懂的理论知识,这个技术与比特币有关联,可以看一下《精通比特币》这本书。
笔者说一下学习这门技术的方法吧
基础阶段 学习区块链开发指南,这个是由比特币底层研究的,也非常深入,讲得也很清楚。还有学习区块链的原理和设计与应用,是基于hyperledger fabric的来讲述的。
以太坊部分 学习和掌握Solidity语言,Web3.js技术,truffle框架,Open—zeppelin合约审查技术,Hyperledger开源技术,IPFS等技术,这些技术在网上都可以搜的到的这是笔者简单作答。
Java开发语言JAVA是一种面向对象的编程语言,不仅吸收了c++语言的优点,也抛弃了在C++、指针等概念中难以理解多重继承的困难,因此J***a语言具有强大且易于使用的两个特性。J***a的特点是简单、面向对象、分布式、健壮、安全、平台独立性和可移植性、多线程和动态。J***a可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。C++开发语言c++是C语言的继承,它可以是C语言程序设计的过程,也可以是抽象的数据类型,作为基于对象的编程的特征,也可以承担面向对象编程的继承和多态性。c++擅长面向对象编程,它也可以执行基于流程的编程,所以c++是问题大小的大小。GO开发语言Go是一种编译语言,它结合了解释语言的灵活性、动态类型语言的开发效率和静态类型的安全性。它还打算成为一种支持网络和多核计算的现代语言。为了实现这些目标,需要解决一些语言问题:一个具有表达性但轻量级的类型系统、并发和垃圾收集机制、严格的依赖规则等等。这些不能通过库或工具来解决,所以创建。Solidity开发语言Solidity是在Ethereum虚拟机(EVM)上运行的智能契约的高级语言。它的语法接近于JavaScript,是一种面向对象的语言。但是当涉及到把网络作为一个真正的东西的时候,这是非常不同的。
首先我们需要了解区块链的概念:
区块链是由包含[_a***_]信息的区块从后向前有序链接起来的数据结构。它可以被存储为flat file(⼀种包含没有相对关系记录的 ⽂件),或是存储在⼀个简单数据库中。⽐特币核⼼客⼾端使⽤Google的LevelDB数据库存储区块链元数据。区块被从后向 前有序地链接在这个链条⾥,每个区块都指向前⼀个区块。区块链经常被视为⼀个垂直的栈,第⼀个区块作为栈底的⾸区 块,随后每个区块都被放置在其他区块之上。⽤栈来形象化表⽰区块依次堆叠这⼀概念后,我们便可以使⽤⼀些术语,例 如:“⾼度”来表⽰区块与⾸区块之间的距离;以及“顶部”或“顶端”来表⽰最新添加的区块。
在这推荐下面这本《精通比特币》:
智能合约:
智能合约是以太坊重要组成部分,以太坊有两种账户类型:一是普通转账的账户,利用密钥控制账户上的代币。另一种账户类型是合约类型账户。该类型账户可以部署逻辑代码,这样你可以在区块链上开发自己的应用。一般该类型应用成为Dapp,去中心化应用。
Solidity:
Solidity是一种语法类似J***aScript的高级语言。它被设计成以编译的方式生成以太坊虚拟机代码。在后续内容中你将会发现,使用它很容易创建用于投票、众筹、封闭拍卖、多重签名钱包等等的合约。目前所有智能合约都是由Solidity进行编写。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/22989.html