SOLIDITY编程:构建以太坊和区块链智能合约的初学者指南
全新正版 极速发货
¥
30.64
5.2折
¥
59
全新
库存4件
作者[印度]里特什 (Ritesh Modi)
出版社机械工业出版社
ISBN9787111616009
出版时间2019-01
装帧平装
开本16开
定价59元
货号1201819632
上书时间2024-12-02
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
瑞提什?(Ritesh Modi),前微软不错技术布道者以及地区负责人。他具有丰富的以太坊和Solidity开发经验,是区块链及Solidity很多相关会议的演讲嘉宾。他是架构师、布道者、演讲者以及有名的,在区块链、数据中心、Azure Bots、认知服务、DevOps、人工智能以及自动化领域都做出了贡献。他也是5本书的作者。
目录
译者序前言审校者简介章 区块链、以太坊和智能合约 11.1 什么是区块链 21.2 为什么是区块链 31.3 加密技术 41.3.1 散列 51.3.2 数字签名 71.4 以太币 71.5 gas 81.6 区块链和以太坊架构 91.6.1 区块如何互相连接 101.6.2 交易和区块如何互相连接 111.7 以太坊节点 121.7.1 EVM 121.7.2 以太坊挖矿节点 131.7.3 如何挖矿 141.8 以太坊账户 151.8.1 外部账户 161.8.2 合约账户 161.9 交易 161.10 区块 201.11 端到端的交易 211.12 什么是合约 221.13 什么是智能合约 221.14 如何部署合约 271.15 本章小结 27第2章 安装以太坊和Solidity 292.1 以太坊网络 292.1.1 主网 302.1.2 测试网络 302.1.3 私有网络 312.1.4 联盟网络 312.2 Geth 312.3 搭建一个私有网络 352.4 ganache-cli 402.5 Solidity编译器 432.6 web3 JavaScript库 432.7 Mist钱包 452.8 MetaMask 472.9 本章小结 51第3章 Solidity介绍 533.1 以太坊虚拟机 533.2 Solidity和Solidity文件 543.2.1 预编译指令 553.2.2 注释 563.2.3 import语句 573.2.4 合约 583.3 合约的结构 593.3.1 状态变量 603.3.2 结构 623.3.3 修改器 633.3.4 事件 643.3.5 枚举 653.3.6 函数 663.4 Solidity中的数据类型 683.4.1 值类型 683.4.2 引用类型 693.5 存储和内存数据位置 713.5.1 规则1 713.5.2 规则2 713.5.3 规则3 723.5.4 规则4 723.5.5 规则5 723.5.6 规则6 743.5.7 规则7 753.5.8 规则8 763.6 字面量 773.7 整型 783.8 布尔型 793.9 字节数据类型 803.10 数组 823.10.1 固定数组 833.10.2 动态数组 833.10.3 特殊数组 843.10.4 数组属性 863.11 数组的结构 863.12 枚举 883.13 地址 893.14 映射 903.15 本章小结 94第4章 全局变量和函数 974.1 var类型变量 974.2 变量声明提前 994.3 变量作用域 1004.4 类型转换 1014.4.1 隐式转换 1024.4.2 显式转换 1024.5 区块和交易全局变量 1044.5.1 交易和消息全局变量 1054.5.2 tx.origin 和msg.sender的区别 1054.6 加密全局变量 1064.7 地址全局变量 1074.8 合约全局变量 1074.9 本章小结 108第5章 表达式和控制结构 1095.1 Solidity表达式 1095.2 if决策控制 1115.3 while循环 1135.4 for循环 1145.5 do...while循环 1155.6 break语句 1165.7 continue语句 1175.8 return语句 1185.9 本章小结 119第6章 编写智能合约 1216.1 智能合约 1216.2 编写一个简单的合约 1226.3 创建合约 1236.3.1 使用new关键字 1236.3.2 使用合约地址 1246.4 构造函数 1256.5 合约组合 1266.6 继承 1276.6.1 单继承 1276.6.2 多级继承 1296.6.3 分层继承 1306.6.4 多重继承 1306.7 封装 1326.8 多态性 1326.8.1 函数多态性 1336.8.2 合约多态性 1336.9 方法覆盖 1356.10 抽象合约 1366.11 接口 1376.12 本章小结 139第7章 函数、修改器和fallback函数 1417.1 函数输入和输出 1417.2 修改器 1437.3 view函数、constant函数和pure函数 1467.4 地址相关函数 1487.4.1 send方法 1497.4.2 transfer方法 1517.4.3 call方法 1517.4.4 callcode方法 1547.4.5 delegatecall方法 1547.5 fallback函数 1547.6 本章小结 157第8章 异常、事件与日志 1598.1 错误处理 1608.1.1 require语句 1608.1.2 assert语句 1628.1.3 revert语句 1638.2 事件与日志 1638.3 本章小结 167第9章 Truffle基础与单元测试 1699.1 应用程序开发生命周期管理 1699.2 Truffle 1709.3 使用Truffle进行开发 1719.4 使用Truffle进行测试 1769.5 本章小结 1780章 合约调试 17910.1 调试 17910.1.1 Remix编辑器 18010.1.2 使用事件 18310.2 使用Block Explorer 18310.3 本章小结 186
内容摘要
本书首先简要介绍区块链、以太坊及其中*重要的概念或组件。随后介绍如何安装所有必要的工具来编写、测试和调试以太坊上的Solidity合约。然后书中将探索Solidity源文件的布局及如何使用不同的数据类型,介绍构建智能合约时使用的运算符、控制结构和数据结构。*后通过Solidity介绍面向对象编程中的函数调用、返回类型、函数修改器。通过本书你将学会事件记录和异常处理,以及测试和调试智能合约。
精彩内容
我不太确定上次大量听说关于政府、组织、社区和个人的技术的讨论是什么时候。区块链是一种正在世界各地各种组织中进行详细讨论和辩论的技术。区块链不仅仅是一种有限影响我们生活的技术,而是对我们的生活产生了广泛的影响。不远的将来,区块链将会触及我们生活的方方面面——支付账单,与任何组织进行交易,获得工资,身份认证,教育结果,活动等。这只是开始,我们刚开始了解去中心化的含义及其影响。我已经在区块链领域工作了很长一段时间,并且一直是加密货币投资者。我是一名技术专家,对比特币非常着迷,因为它架构奇特。我从未遇到过这样优越的思维过程和架构,它不仅解决了经济和社会问题,而且解决了一些技术上未解决的问题,如拜占庭式的一般问题和容错。它在很大程度上解决了分布式计算的问题。以太坊以几乎相似的方式搭建,当次听到并经历智能合约时,我很敬畏。智能合约是在区块链上部署去中心化应用程序并通过自定义逻辑、策略和规则轻松扩展的优选创新之一。在编写这本书时我心怀愉悦,并真诚地希望你也喜欢阅读和实施Solidity。 我介绍了很多我的Solidity经验,并尽我所能阐述清楚,希望这本书能让你成为更好的Solidity开发人员和优秀的程序员。如果有哪些我可以做的,能够更好地改善你对这本书的体验,我洗耳恭听!本书目的读者为了更好地阅读本书的内容,需要计算和编程的基本概念和知识。如果你觉得自己没有这方面的知识,可以通过快速阅读针对初学者的编程书籍来满足基本要求。本书主要面向使用区块链为最终客户和雇主提供不错服务的区块链架构师、开发人员、顾问和IT工程师。如果你想在以太坊上编写智能合约解决方案,那么本书对你来说非常理想。如果你已经拥有一些JavaScript经验,那么可以帮助你加快学习速度。本书主要内容章介绍区块链的基本原理、术语和行话、优势、尝试解决的问题以及行业相关性。本章将详细解释重要的概念和架构,还将介绍以太坊特有的概念。在本章中,将讨论有关其外部拥有的账户、合约账户、gas和以太币等概念。以太坊主要基于密码学,你将了解用于创建交易和账户的散列、加解密算法。本章还将详细解释如何创建交易和账户,如何为每笔交易支付gas,消息调用和交易之间的差异,以及代码存储和状态管理细节。第2章将指导你使用以太坊平台创建私有区块链。以太坊生态系统中的另一个重要工具是ganache-cli。本章还将介绍如何安装ganache-cli并使用它来部署Solidity合约,如何安装Solidity并使用它来编译Solidity合约。你还将安装Mist,这是一个钱包,可以与私有链进行交互。Mist用于创建新账户,部署并使用合约。本章也将介绍交易中的挖矿。Remix是创建Solidity合约的绝佳工具。第3章开始Solidity之旅。在本章中,你将通过了解不同版本以及如何使用预编译指令来学习Solidity基础知识。本章的另一个重要方面是如何构建智能合约,将从使用重要结构(如状态变量、函数、常量函数、事件、修改器、fallback、枚举和结构体)方面深入讨论智能合约布局。本章讨论并实现任何编程语言中最重要的元素——数据类型和变量,既有简单数据类型也有复杂数据类型,既有值类型也有引用类型,既有存储类型也有内存类型,我们会使用示例说明所有这些变量类型。第4章提供与区块和交易相关的全局函数和变量、与地址和合约相关的全局函数和变量的实现及使用细节。在一系列智能合约开发时,可以非常方便地使用这些内容。第5章教你如何使用if ... else和switch语句编写具有条件逻辑的合约和函数。循环是任何语言的重要组成部分,Solidity提供了while和for循环用于遍历数组。本章给出了循环的示例和实现。必须根据一定的条件中断循环,并根据其他条件继续循环。第6章是本书的核心章节。从这章开始,你将编写真正的智能合约。本章将会讨论如何编写智能合约,如何定义和实现合约,如何使用new关键字和已知地址等不同机制创建和部署合约。Solidity提供了丰富的面向对象机制,本章将深入研究面向对象的概念和实现,如继承、多继承、声明抽象类和接口,以及为抽象函数和接口提供实现方法。第7章展示了如何实现接受输入和返回输出的基本函数,以及仅输出现有状态而不更改状态和修改器的函数。修改器有助于在Solidity中更好地组织代码,并有助于提高合约的安全性和重用合约中的代码。fallback函数是重要的结构,在函数调用与任何现有函数签名不匹配时执行。对于将以太币发送到合约的情况,实现fallback函数也很重要。为了便于理解,将使用示例讨论和实现修改器和fallback函数。第8章从合约开发的角度来看是非常重要的。如果出现错误和异常,应将以太币返回给调用者。本章将使用较新的Solidity结构(如assert、require和revert)深入解释和实现异常处理,还将讨论hrow语句。事件和日志记录有助于理解合约和函数的执行,本章将展示和解释事件和日志的实现。第9章涵盖了Truffle的基础知识,你将理解它的概念,创建一个项目并理解项目结构,修改它的配置,通过一个示例了解编写、测试、部署和迁移合约的整个生命周期。测试合约和编写合约一样重要。Truffle提供了测试框架,但还应该编写测试用例。本章将讨论单元测试的基础知识,使用Solidity编写单元测试,并对智能合约执行单元测试。通过创建交易并验证其结果来执行单元测试,本章将展示编写和执行单元测试的细节。0章将使用Remix和事件等多种工具展示如何解决和调试故障。 本章将介绍如何逐行执行代码,检查每行代码执行后的状态,并相应地更改合约代码。阅读本书的前提条件本书假定你具有编程的基本知识,理想情况下应具备任意脚本语言的背景。本书的大部分内容需要连接互联网和使用浏览器。有些部分需要一台机器来部署区块链特定的工具和实用程序,可以使用云端或本地部署的物理机器或虚拟机器。下载示例代码本书的示例代码可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
— 没有更多了 —
以下为对购买帮助不大的评价