0 0 0

以太坊智能合约开发实战.epub

与卿长眠
1月前 360
我用夸克网盘分享了「以太坊智能合约开发实战.epub」,点击链接即可保存。打开「夸克APP」在线查看,支持多种文档格式转换。
以太坊智能合约开发实战 作者: 唐盛彬 出版社: 机械工业出版社 出版年: 2019-4-1 页数: 488 定价: 119元 装帧: 平装 ISBN: 9787111623717

内容简介

从区块链的概念、原理、核心技术和应用四个方面,系统地介绍了以太坊区块链开发的相关知识。其中,重点介绍了以太坊的相关概念和原理、以太坊客户端Geth、以太坊常用智能合约开发工具、Solidity语言和智能合约开发等内容,并介绍了众筹合约和代币合约两个项目实战案例,可以让读者对智能合约开发的整体流程有一个全面的了解。另外,书中结合示例对web3.js的相关知识也做了详细介绍,以帮助读者更好地理解和利用以太坊的相关数据。 《以太坊智能合约开发实战》共17章,分为4篇,涵盖的主要内容有区块链的概念、原理与底层技术;以太坊的相关概念与原理;以太坊相关协议;以太坊客户端Geth;以太坊智能合约的其他常用工具与客户端;Solidity语言的基本概念与数据类型;使用Solidity进行以太坊智能合约开发;通过web3.js与以太坊区块链数据进行交互;众筹智能合约与代币智能合约项目实战案例。 《以太坊智能合约开发实战》内容丰富,讲解通俗易懂,案例典型,实用性强,特别适合区块链技术爱好者和智能合约开发的相关从业人员阅读,也适合区块链底层研究人员阅读。另外,《以太坊智能合约开发实战》还适合区块链培训机构作为相关课程的培训教材。

作者简介

唐盛彬 就职于国内领先的手机游戏平台当乐网(d.cn),主要负责当乐游戏中心App平台的SDK及区块链游戏众筹平台DOGI.IO的智能合约开发工作。熟悉以太坊,对以太坊底层原理和相关协议有较为深入的研究;熟悉以太坊智能合约开发的核心技术与常用工具,如Solidity语言、web3.js、Truffle和Geth等;对使用Solidity语言进行以太坊智能合约开发有丰富的实战经验,特别是在众筹和代币开发等相关领域。

网友热评

布谷咕噜咕噜: 很全面,啥都讲到了,比那些堆了一堆字半点实操没有的书强多了。不过里面一些东西已经不适用于现在的版本了,需要自己注意灵活变通。 Kylin: 比“精通”的那本对概念的讲述要清晰很多。以太坊相关资源里很棒的一本了 elwin: 当当买的,同城发货一周才到,给了差评,但没显示出来。 书的内容有些过时了,solidity版本用的是0.4.24,现在都0.8.18了;166页的MIST在四年前官方都停止维护了。 内容感觉是东凑西凑的,条理很乱,经常冒出一个名词,之前没提到过的,还要去百度,感觉很累。 排版不好看,段落之前没有空半行。很多错误字或单词,比如223页第9行,“本节我们来学习ntegers类型”。 自我觉得自己的学习和理解能力很强的,但看这本书还是很心累,吐血看完。

图书目录

第1篇基础理论与原理 第1章与区块链的第一次亲密接触2 1.1什么是区块链2 1.1.1区块链简介2 1.1.2区块链的链式结构3 1.1.3区块链上的区块常见数据4 1.2工作量证明机制(PoW)6 1.2.1区块链遭遇的问题6 1.2.2PoW模型8 1.2.3PoW为什么能防止篡改9 1.3权益证明机制(PoS)11 1.3.1什么是PoS12 1.3.2PoS的优势与劣势12 1.4委托权益证明(DPoS)12 1.5权威证明(PoA)13 1.6区块链的应用13 1.7本章小结13 第2章去中心化应用——DApp15 2.1DApp简介15 2.1.1什么是DApp15 2.1.2DApp网络组建过程16 2.1.3DApp的优点16 2.1.4DApp存在的问题16 2.2中心化与去中心化17 2.2.1身份验证17 2.2.2通信17 2.2.3数据交互17 2.2.4系统维护18 2.3DApp网络与通信18 2.3.1P2P网络与WWW19 2.3.2P2P网络拓扑结构类型20 2.3.3小结21 2.4DApp货币与中心化数据交互22 2.4.1DApp货币22 2.4.2中心化应用获取去中心化数据22 2.4.3去中心化应用获取中心化数据22 2.5常见的DApp23 2.5.1比特币23 2.5.2以太坊23 2.5.3IPFS存储系统23 第3章比特币那些事25 3.1比特币简介25 3.1.1比特币公钥与私钥25 3.1.2数字签名26 3.2椭圆曲线算法26 3.2.1群26 3.2.2椭圆曲线算法定义28 3.2.3椭圆曲线几何运算29 3.2.4椭圆曲线算法的代码实现30 3.2.5椭圆曲线加密与签名原理37 3.3比特币私钥、公钥与地址39 3.3.1从私钥到地址39 3.3.2公钥压缩40 3.3.3私钥格式41 3.3.4私钥与安全41 3.4比特币交易44 3.4.1交易简介44 3.4.2交易输出44 3.4.3交易输入44 3.4.4交易费45 3.4.5付款至公钥哈希(P2PKH)45 3.4.6多重签名与P2SH46 3.5比特币钱包46 3.5.1钱包简介46 3.5.2生成助记词47 3.5.3从助记词生成种子48 3.5.4从种子生成HD钱包48 3.5.5HD钱包密钥路径50 3.6比特币相关资源51 第4章以太坊52 4.1以太坊简介52 4.1.1什么是以太坊52 4.1.2以太坊虚拟机(EVM)53 4.1.3以太坊智能合约与高级语言53 4.1.4以太币单位54 4.1.5以太坊发行版本与提案54 4.2以太坊账户55 4.2.1外部账户55 4.2.2合约账户56 4.2.3外部账户与合约账户的异同56 4.3以太坊交易57 4.3.1gas、gasPrice与gasLimit57 4.3.2gasUsed与交易花费58 4.3.3什么是以太坊交易与消息58 4.4以太坊网络59 4.4.1以太坊网络简介59 4.4.2以太坊与Kademlia59 4.4.3以太坊客户端61 4.5挖矿62 4.5.1什么是挖矿62 4.5.2挖矿奖励62 4.5.3以太坊区块63 4.6GHOST协议64 4.6.1区块时间64 4.6.2区块分叉65 4.6.3普通分叉带来的问题66 4.6.4GHOST协议的具体内容67 4.7Ethash算法之DAG68 4.7.1什么是DAG68 4.7.2DAG生成过程69 4.7.3为什么要使用DAG69 4.8Ethash算法70 4.8.1Ethash算法简介70 4.8.2Ethash算法流程70 4.9本章小结71 第2篇开发工具 第5章智能合约开发常用工具74 5.1Git简介74 5.1.1Git安装74 5.1.2Git常用命令75 5.1.3Git资源推荐76 5.2Node.js简介76 5.2.1什么是Node.js76 5.2.2Node.js安装77 5.3NPM简介78 5.3.1npmconfig命令78 5.3.2NPM与语义化版本80 5.3.3npminstall命令82 5.3.4NPM镜像83 5.3.5NPM的其他常用命令84 5.4webpack简介85 5.4.1认识webpack85 5.4.2webpack首秀85 5.4.3webpack与webpack-dev-server87 5.4.4webpack常用功能与配置90 5.4.5webpack总结92 5.5Postman简介92 5.5.1认识Postman93 5.5.2Postman的简单用法94 5.5.3Postman脚本95 5.6LevelDB简介96 5.6.1认识LevelDB96 5.6.2LevelDB文件97 5.6.3SST结构与数据查找99 第6章以太坊私链神器——Ganache102 6.1Ganache简介102 6.1.1什么是Ganache102 6.1.2ganache-cli命令安装103 6.1.3Ganache图形界面104 6.2Ganache常见命令参数106 6.2.1挖矿时间106 6.2.2主机端口与网络106 6.2.3gas相关参数106 6.2.4其他参数106 6.3Ganache账户107 6.3.1能多给我点钱吗107 6.3.2能多给我几个账户吗108 6.3.3助记词相关参数108 6.3.4指定账户108 6.3.5锁定账户与解锁109 6.4Ganache与JavaScript109 6.4.1在工程中引用Ganache的Provider109 6.4.2在工程中启动Ganache的Server110 6.4.3配置工程中依赖的Ganache111 6.5Ganache交易相关RPC方法112 6.5.1eth_sendTransaction方法113 6.5.2eth_getTransactionCount方法115 6.5.3eth_getTransactionReceipt方法116 6.5.4eth_getTransactionByHash方法116 6.5.5交易相关的其他方法117 6.6Ganache账户相关RPC方法117 6.6.1eth_accounts方法118 6.6.2eth_getBalance方法118 6.6.3eth_coinbase方法119 6.7Ganache区块相关RPC方法119 6.7.1eth_getBlockByHash方法119 6.7.2eth_getBlockByNumber方法122 6.7.3其他相关方法122 6.8Ganache日志相关RPC方法123 6.8.1eth_newFilter方法123 6.8.2eth_getFilterLogs方法124 6.8.3eth_getLogs方法125 6.8.4其他关联方法126 6.9Ganache的其他RPC方法127 6.9.1web3_clientVersion方法127 6.9.2net_version方法127 6.9.3eth_getCode方法128 6.9.4eth_sign方法129 第7章以太坊官方客户端——Geth130 7.1Geth简介130 7.1.1Geth是什么130 7.1.2Geth安装130 7.1.3Geth相关目录132 7.1.4Geth相关工具134 7.2Geth子命令134 7.2.1Geth子命令概述135 7.2.2Geth子命令之account136 7.2.3Geth子命令之console与attach137 7.2.4Geth子命令之copydb与removedb137 7.3Geth启动参数138 7.3.1Geth数据同步模式138 7.3.2Geth网络相关参数138 7.3.3Geth以太坊相关参数139 7.3.4GethRPC相关参数140 7.3.5Geth挖矿相关参数141 7.3.6Gethethash算法参数142 7.3.7Geth交易池配置142 7.3.8Geth日志参数145 7.3.9Geth的其他参数146 7.4Geth启动实例146 7.4.1Geth启动单个节点146 7.4.2Geth启动多节点组网148 7.5Geth控制台与管理接口149 7.5.1admin模块149 7.5.2debug模块150 7.5.3miner模块151 7.5.4personal模块152 7.5.5txpool模块153 7.6keystore文件153 7.6.1keystore文件简介153 7.6.2从密钥到密钥文件154 7.6.3从密钥到密钥文件流程验证155 第8章以太坊钱包与浏览器158 8.1MetaMask插件158 8.1.1MetaMask简介158 8.1.2MetaMask安装159 8.1.3第一次使用MetaMask160 8.1.4MetaMask的连接配置161 8.1.5MetaMask的其他配置162 8.1.6MetaMask账户管理163 8.1.7MetaMask交易164 8.1.8小结165 8.2EthereumWallet钱包166 8.2.1EthereumWallet简介166 8.2.2安装EthereumWallet与Mist166 8.2.3使用EthereumWallet169 8.3Mist与EthereumWallet170 8.3.1EthereumWallet与Mist的区别171 8.3.2Mist的配置与使用171 8.3.3小结172 8.4MyEtherWallet网页钱包172 8.4.1MyEtherWallet简介173 8.4.2MyEtherWallet合约交互174 8.4.3MyEtherWallet离线交易175 8.4.4MyEtherWallet的其他功能177 第3篇Solidity与智能合约开发 第9章Solidity初遇180 9.1Solidity简介180 9.1.1什么是Solidity180 9.1.2智能合约示例181 9.1.3Solidity编译版本182 9.2Solidity编辑器182 9.2.1Sublime编辑器182 9.2.2Atom编辑器185 9.2.3IDEA编辑器187 9.3Remix编辑器188 9.3.1Remix简介188 9.3.2Remix文件管理189 9.3.3Remix编辑面板与控制台190 9.3.4Remix编译与运行面板191 9.3.5Remix基本配置面板193 9.3.6Remix分析配置面板194 9.4Solidity常见概念196 9.4.1状态变量196 9.4.2局部变量196 9.4.3Solidity函数197 9.4.4返回多值197 9.4.5构造函数198 9.4.6异常200 9.4.7Solidity注释与文档201 9.5Solidity运算符203 9.5.1Solidity运算符简介203 9.5.2Solidity运算符注意事项204 9.6Solidity控制结构205 9.6.1控制结构简介205 9.6.2判断语句205 9.6.3for循环206 9.6.4while与do…while循环206 9.6.5continue与break207 9.6.6三目运算符208 9.7可见性修饰符209 9.7.1public修饰符209 9.7.2internal修饰符210 9.7.3private修饰符213 9.7.4external修饰符214 9.8函数其他修饰符216 9.8.1constant修饰符216 9.8.2view修饰符217 9.8.3pure修饰符217 第10章Solidity数据类型219 10.1数据类型简介219 10.1.1值类型219 10.1.2引用类型220 10.1.3小结221 10.2Booleans类型221 10.2.1Booleans类型简介221 10.2.2Booleans类型支持的运算符221 10.3Integers类型223 10.3.1Integers类型简介223 10.3.2Integers类型支持的运算符224 10.3.3Integers整除问题225 10.4定点数类型226 10.4.1定点数类型简介226 10.4.2定点数类型支持的运算符227 10.5字面量227 10.5.1字符串字面量227 10.5.2十六进制字面量229 10.5.3有理数字面量230 10.6Enum类型231 10.6.1枚举类型简介231 10.6.2枚举类型实例231 10.7mapping类型232 10.7.1mapping类型简介232 10.7.2mapping类型实例232 10.8struct类型233 第11章Solidity数据类型进阶235 11.1Solidity固定大小字节数组235 11.1.1固定大小字节数组类型235 11.1.2固定大小字节数组支持的运算符236 11.1.3固定大小字节数组的成员236 11.1.4固定大小字节数组与字符串237 11.1.5固定大小字节数组之间的转换240 11.1.6小结241 11.2Solidity动态大小字节数组242 11.2.1动态大小字节数组简介242 11.2.2创建动态大小字节数组242 11.2.3动态大小字节数组成员243 11.2.4字节数组间的转换245 11.2.5小结247 11.3Solidity数组247 11.3.1固定长度数组248 11.3.2动态长度数组249 11.3.3二维数组250 11.3.4小结251 11.4以太坊地址类型251 11.4.1地址简介252 11.4.2transfer、send与balance254 11.4.3call、callcode与delegatecall255 11.5函数类型257 11.5.1函数类型简介258 11.5.2函数签名258 11.5.3函数类型实例260 11.6数据类型转换262 11.6.1隐式转换262 11.6.2显式转换263 11.6.3var关键字264 11.7delete运算符265 11.7.1delete与常见类型265 11.7.2delete与数组266 11.7.3delete与mapping267 11.7.4delete与struct267 11.8本章小结268 第12章Solidity开发智能合约270 12.1智能合约简介270 12.1.1智能合约的概念270 12.1.2EVM结构与数据271 12.1.3智能合约执行271 12.2事件与日志简介272 12.2.1事件简介272 12.2.2事件主题272 12.2.3事件与日志274 12.3Solidity中的单位后缀276 12.3.1以太币单位276 12.3.2时间单位277 12.4区块与交易属性279 12.4.1区块的相关属性279 12.4.2消息的相关属性281 12.4.3交易的相关属性282 12.5错误处理函数283 12.5.1assert函数283 12.5.2require函数283 12.5.3revert函数284 12.6数学与Hash函数285 12.6.1数学运算函数285 12.6.2Hash函数285 12.6.3ecrecover函数286 12.7ABI编码与编码函数287 12.7.1ABI编码简介287 12.7.2ABI编码数据类型289 12.7.3常见数据类型ABI编码规则290 12.7.4复杂类型ABI编码规则292 12.7.5ABI编码实例295 12.8特殊类型函数296 12.8.1回退函数296 12.8.2析构函数297 12.8.3函数重载298 12.8.4使用new创建合约函数调用299 第13章Solidity开发智能合约进阶303 13.1Solidity数据位置303 13.1.1什么是数据位置303 13.1.2memory简介304 13.1.3storage简介304 13.1.4calldata简介307 13.1.5小结308 13.2数据位置与赋值308 13.2.1状态变量赋值给局部storage变量308 13.2.2状态变量赋值给memory局部变量310 13.2.3局部memory变量赋值给状态变量310 13.2.4状态变量赋值状态变量311 13.2.5局部memory变量赋值给局部memory变量312 13.2.6局部storage变量赋值给局部storage变量313 13.2.7局部storage变量赋值给局部memory变量314 13.2.8局部storage变量赋值给状态变量315 13.2.9小结316 13.3函数修改器317 13.3.1函数修改器简单实例317 13.3.2函数修改器复杂实例319 13.3.3小结321 13.4合约继承324 13.4.1继承简介324 13.4.2super关键词327 13.4.3抽象合约328 13.4.4接口合约328 13.5Solidity库329 13.5.1Solidity库简介329 13.5.2Solidity库应用实例329 13.5.3Solidity导入源文件330 13.5.4usingfor语句331 13.6Solidity编译333 13.6.1solc简介333 13.6.2solc编译合约336 13.6.3solc导入与库338 13.6.4solc.js简介340 13.6.5使用solc.js在项目中编译单个合约340 13.6.6使用solc.js在项目中编译多个合约342 13.7Solidity编码风格344 13.7.1命名风格344 13.7.2控制结构344 13.7.3函数相关风格345 13.7.4其他部分346 第14章通过web3.js与以太坊客户端进行交互347 14.1web3.js简介347 14.1.1web3.js概念347 14.1.2web3.js原理348 14.1.3web3.js模块348 14.2web3.js与以太坊节点348 14.2.1HTTP方式348 14.2.2IPC方式349 14.2.3WebSocket方式350 14.3web3.js工具的相关方法350 14.3.1以太币单位转换方法351 14.3.2十六进制、数字与字符串转换351 14.3.3填充字符与getStorageAt352 14.4web3.js账户的相关方法354 14.4.1获取账户与账户余额354 14.4.2创建账户355 14.4.3解锁账户356 14.4.4账户的其他相关方法356 14.5web3.js的ABI编码方法357 14.5.1函数签名与事件签名357 14.5.2函数单参数编码与解码359 14.5.3函数多参数编码与解码360 14.5.4编码函数调用360 14.5.5解码日志361 14.6web3.js合约的相关方法362 14.6.1创建与克隆合约362 14.6.2合约部署deploy363 14.6.3send函数与call函数369 14.6.4estimateGas函数与encodeABI函数370 14.6.5合约方法的调用370 14.6.6合约事件的处理375 14.7web3.js交易的相关方法380 14.7.1签名简介380 14.7.2签名与交易381 14.7.3发送交易384 14.7.4签名交易与发送签名交易386 14.7.5获取交易的相关数据387 14.8web3.js和IBAN的相关接口388 14.8.1IBAN简介389 14.8.2BBAN、IBAN与地址390 14.8.3IBAN的其他方法390 14.9web3.js的其他方法391 14.9.1订阅事件391 14.9.2网络及ENS的相关方法392 14.9.3与Swarm和Whisper交互的方法392 14.10与Ethereum相关的JavaScript库393 14.10.1BigNumber.js库393 14.10.2ethjs-abi库395 14.10.3其他Ethereum库399 第4篇项目案例实战 第15章工程化项目开发利器——Truffle402 15.1Truffle简介402 15.1.1Truffle的主要功能402 15.1.2Truffle的安装及其相关命令403 15.2Truffle创建项目404 15.2.1init命令405 15.2.2unbox命令406 15.3通过Truffle编译项目408 15.3.1前置条件与编译408 15.3.2Truffle编译输出409 15.3.3Truffle编译依赖410 15.4Truffle配置文件411 15.4.1网络配置411 15.4.2输出目录配置412 15.4.3测试配置413 15.4.4编译配置413 15.4.5包管理相关配置414 15.5Truffle单元测试与部署415 15.5.1使用JavaScript测试415 15.5.2JavaScript测试交易417 15.5.3使用Solidity测试419 15.5.4合约部署419 15.6Truffle的其他命令420 15.6.1create命令420 15.6.2包管理相关命令421 15.6.3其他命令421 第16章项目流程与众筹实战案例423 16.1合约部分423 16.1.1项目简介423 16.1.2初始化与合约目录424 16.1.3部署与测试脚本目录424 16.2众筹合约425 16.2.1Owned合约425 16.2.2SafeMath合约426 16.2.3Crowd合约427 16.3合约的部署与使用429 16.3.1本地部署与测试环境搭建429 16.3.2本地部署与测试网络配置429 16.3.3本地部署430 16.3.4本地测试430 16.3.5Ropsten网络测试部署431 16.4项目的Web部分432 16.4.1初始化Web项目432 16.4.2webpack配置432 16.4.3package.json配置433 16.4.4运行Web项目434 第17章以太坊代币标准与ERC20代币案例437 17.1代币简介437 17.1.1ERC20简介437 17.1.2ERC223简介438 17.1.3ERC721简介438 17.2ERC20标准接口简介438 17.2.1基本信息439 17.2.2总额与余额439 17.2.3转账与授权439 17.2.4事件440 17.3ERC20代币实例440 17.3.1查看以太坊上已有的Token440 17.3.2创建Token441 17.3.3查看和转移Token443 17.4扩展ERC20标准代币448 17.4.1销毁代币448 17.4.2添加Token449 17.4.3冻结与解冻账户449 17.4.4买卖Token450 17.4.5小结451 17.5ERC20代币扩展实例451 17.5.1初始化项目451 17.5.2添加三方库合约452 17.5.3代币合约的逻辑实现460 17.5.4代币合约的部署465 ……

以太坊智能合约开发实战.epub"网盘下载"

版权说明

1、本站不保存、不存储任何实质资源,以上二维码指向为网盘资源链接,其内容归对应版权方所有
2、如有侵犯版权的情况,请点击下面举报/反馈按钮反馈或发送邮件[email protected]投诉说明情况
3、我们核实后将第一时间删除相关页面内容,谢谢理解和配合

这些人下载过 (12)
  • 为你披衣
  • 情衷
  • i你好吵
  • 醉声梦死
  • 夜的第七章
  • 被你暖化
  • 我矮得可以让你抬不起头
  • 冷月醉夕阳
  • 锦书
  • 有鬼
  • 左耳进右耳出
  • 迷路的信
最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!