暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
区块链项目开发指南.pdf
61
183页
0次
2024-07-12
10墨值下载
从去年开始,“区块链”成了一个高热度的关键字,受到各行各业的关注。越来越多的人渴望用区块链这一变革性技术来解
决商业中的关键问题。自然,有更多的人渴望深入了解和运用区块链技术甚至开发自己的区块链应用。最近一年多,总是有很多
朋友和学生问我:“如何学习以太坊?有什么资料推荐吗?”通常我的回答就是:“从以太坊白皮书和黄皮书看起吧。”显然,
仅仅精读两篇文章是不够的,要想对区块链有进一步的认识,还需要更多的知识储备。但是目前国内很难找到一本系统介绍区块
链技术和开发平台的书籍。作为在区块链领域具有较高知名度和丰富从业经验的专家团队,我们非常希望能给大家提供一套系统
的学习资料。
作为这场区块链技术热潮的弄潮儿,以太坊是最先进区块链技术的代表。以太坊的社区和开发工具都相对比较完善和活跃。
正因如此,很多企业级区块链解决方案都在积极地拥抱以太坊。但是很遗憾,系统介绍以太坊的中文资料非常匮乏。首次接触到
《Building Blockchain Projects》这本英文书后,我们便感觉它是关于以太坊在广度上难得的技术资料,于是想尽快呈现给国内的
读者。在翻译过程中,我们在保证表述流畅的同时,对原著的内容进行了验证,并对其中的错误进行了修正。因此,本书应该比
英文原版书更加易懂和准确。
在本书中,读者将了解如何编写智能合约、如何用JavaScript开发以太坊程序,以及如何为区块链创建端到端应用。
本书具有如下特点:
·“学生导向”,跟着这本书可以由浅及深地学习以太坊技术应用。
·给出了多个真实的以太坊智能合约编写示例,可帮助初学者迅速上手编写代码。
·通俗易懂,讲解细致,方便自学。
在翻译本书的同时,我们的团队没有停止前进的脚步。我们不断努力,以求在技术深度上更进一步。读者掌握本书的内容
后,可以阅读我们即将于近期出版的其他关于以太坊和Hyperledger的书,以加深对区块链的关键技术的认识。详情请见我们的微
信公众号“智链ChainNova”。
区块链是一个防篡改的去中心化账本,其中包含不断增长的数据记录列表。每个用户都可以连接到网络,发送新的交易、验
证交易和创建新的区块。
本书将阐释区块链的概念,讲述其如何保证数据真实性,以及如何使用以太坊创建现实世界的区块链项目。通过有趣的现实
世界案例,读者将了解如何编写完全按照程序运行、没有欺诈、没有中心机构或者第三方干预的智能合约,并学习如何创建端到
端的区块链应用。本书还将介绍加密货币中的密码学、以太币安全、挖矿、智能合约和Solidity等概念
区块链是比特币中最有创造性的技术,是记录比特币交易的公共账本。
本书内
第1章阐释DApp的概念,并简述其工作原理。
第2章阐释以太坊的工作原理。
第3章阐释如何编写智能合约和使用geth交互接口来部署合约,以及使用web3.js广播交易。
第4章介绍web.3js的概念及其导入方法、连接到geth的方法,并阐释了如何在node.js或者客户端JavaScript使用它。
第5章阐释如何创建钱包服务,以方便用户创建和管理以太坊钱包,甚至离线创建和管理钱包。我们将专门使用LightWallet
库实现。
第6章展示如何使用web3.js编译智能合约,以及使用web3.js和EthereumJS部署智能合约。
第7章阐释如何使用Oraclize从以太坊智能合约发出HTTP请求,以访问万维网中的数据。我们还将学习访问存储在IPFS中的
文件、使用字符串库处理字符串等方法。
第8章阐释如何使用truffle。truffle将使创建企业级DApp变得容易。我们将通过创建代币来学习truffle
第9章阐释创建联盟区块链的方法。
设备环
Windows 7 SP1+、Windows 8、Windows 10或者Mac OS X 10.8+。
读者对
本书适合想使用区块链和以太坊创建防篡改数据(和交易)应用的JavaScript开发人员阅读,也适合对密码学及其逻辑以及相
关数据库感兴趣的人阅读。
下载实例代
可以从http://www.packtpub.com下载本书的实例代码文件。如果您在其他地方购买了本书,可以访
http://www.hzbook.com注册并下载。
1章 
我们以前用过的所有互联网应用几乎都是中心化的,即每个应用的服务端由一个特定企业或个人所有。长期以来,开发人员
创建中心化应用,用户使用中心化应用。但是中心化应用存在一些问题,包括不透明、有单点故障、不能防止网络审查等,导致
几乎不可能创建某些特定类型的应用。为了解决这些问题,一项新的技术诞生了,它创建以网络为基础去中心化应用
(DApp)。在本章中,我们将学习去中心化应用。
在本章中,我们将讲解以下内容
·什么是DApp。
·去中心化、中心化和分布式应用之间的区别。
·中心化和去中心化应用的优点和缺点。
·概述一些最热门的DApp所使用的数据结构、算法和协议
·学习一些创建在其他DApp之上的流行DApp。
1.1 什么DApp
DApp是一种互联网应用,其后端在去中心化的点对点网络上运行,且其源代码是开源的。网络中不存在能够完全控制
DApp的节点。
根据DApp的功能不同,使用不同的数据结构来存储应用数据。例如,比特币DApp使用区块链数据结构。
这些对等节点(peer)可以是网络中的任何计算节点,因此,发现和防止节点对应用数据进行非法篡改或者与其他人分
错误信息是一个重要挑战,所以需要对等节点之间有一些关于某个节点发布的数据是否正确的共识。在DApp中,没有一个中心
服务器来协调节点,或者决定什么是对、什么是错,因此应对这个挑战确实不容易。一致性协议(concensus protocol)可
于解决这个问题。不同的DApp通常使用不同数据结构类型的共识协议,例如比特币使用工作量证明协议(PoW)来达成共识
为了让用户()使用DApp,每一个DApp都需要一个客户端(client)。使用DApp时,用户首先需要运行DApp中自己
节点服务端,然后将客户端连接至节点服务端。DApp的节点只提供应用程序编程接口(Application Programming
Interface,API),并允许开发者社区使用API开发多种客户端。一些DApp开发人员会提供一个官方的客户端。DApp客户端应
该是开源的,并可以被下载使用,否则整个去中心化的想法就失败了
但是建立客户端架构比较麻烦,如果用户不是开发人员,就更麻烦。因此,客户端通常作为服务和/或节点形式出现,以便
让使用DApp的过程更容易。
什么是分布式应用?
分布式应用是指应用分布在多个服务端上,而非只有一个服务端。当应用数据和通信量变得巨大,且应用的停机时间难以承
受时,分布式是必要的。在分布式应用中,数据在多个服务端中备份,以具有较高可用性。中心化应用可能是分布式的,也可能
不是分布式的,但去中心化应用肯定是分布式的。例如Google、Facebook、Slack、DropBox等是分布式的,而简单的投资组合网
站或者个人微博通常不是分布式的,除非通信量很大。
1.1.1 
中心化应用的一些优点如下
·DApp能容错,没有单点故障,因为它们默认是分布式的
of 183
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。