阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      区块链项目开发指南

      区块链项目开发指南

      内容简介

      区块链是近十年来颇具颠覆性的新兴信息技术之一,它正以一种全新的方式建立人类交易过程的信任、仲裁和记录基础。本书共 9 章,首先介绍去中心化应用、DApp 等基本概念,并据此展开对比特币、以太坊、超级账本等热门 DApp 的阐释。其次在解析以太坊工作原理的基础上介绍智能合约的编写方法,并介绍 web3.js 的应用方法。后利用上述知识进行钱包服务、智能合约部署平台、投注 App、企业级智能合约以及联盟区块链等具体应用程序的创建。

      目录

      • Contents 目录
      • 译者序
      • 前言

      第 1 章 去中心化应用 1

      • 1.1 什么是 DApp1
      • 1.1.1 去中心化应用的优点 2
      • 1.1.2 去中心化应用的缺点 3
      • 1.2 去中心化自治组织 3
      • 1.3 DApp 中的用户身份 4
      • 1.4 DApp 中的用户账户 5
      • 1.5 访问中心化应用 6
      • 1.6 DApp 中的内部货币 6
      • 1.7 什么是授权的 DApp7
      • 1.8 热门的 DApp7
      • 1.8.1 比特币 7
      • 1.8.2 以太坊 9
      • 1.8.3 超级账本项目 9
      • 1.8.4 IPFS10
      • 1.8.5 Namecoin11
      • 1.8.6 达世币 12
      • 1.8.7 BigChainDB14
      • 1.8.8 OpenBazaar14
      • 1.8.9 Ripple14
      • 1.9 总结 16

      第 2 章 以太坊的工作原理 17

      • 2.1 以太坊概览 17
      • 2.2 以太坊账户 18
      • 2.3 交易 18
      • 2.4 共识 19
      • 2.5 时间戳 20
      • 2.6 随机数 21
      • 2.7 区块时间 21
      • 2.8 分叉 24
      • 2.9 创世区块 24
      • 2.10 以太币面值 24
      • 2.11 以太坊虚拟机 25
      • 2.12 gas25
      • 2.13 发现对等节点 26
      • 2.14 Whisper 和 Swarm27
      • 2.15 geth27
      • 2.15.1 安装 geth28
      • 2.15.2 JSON-RPC 和 JavaScript 操作台 28
      • 2.15.3 子命令和选项 29
      • 2.15.4 创建账户 29
      • 2.16 以太坊钱包 31
      • 2.17 浏览器钱包 31
      • 2.18 以太坊的缺点 32
      • 2.19 serenity33
      • 2.20 总结 35

      第 3 章 编写智能合约 36

      • 3.1 Solidity 源文件 36
      • 3.2 智能合约的结构 37
      • 3.3 数据位置 38
      • 3.4 什么是不同的数据类型 39
      • 3.4.1 数组类型 39
      • 3.4.2 字符串类型 40
      • 3.4.3 结构类型 41
      • 3.4.4 枚举类型 42
      • 3.4.5 mapping 类型 42
      • 3.4.6 delete 操作符 43
      • 3.4.7 基本类型之间的转换 44
      • 3.4.8 使用 var44
      • 3.5 控制结构 45
      • 3.6 用 new 操作符创建合约 46
      • 3.7 异常 46
      • 3.8 外部函数调用 46
      • 3.9 合约功能 48
      • 3.9.1 可见性 48
      • 3.9.2 函数修改器 50
      • 3.9.3 回退函数 51
      • 3.9.4 继承 52
      • 3.10 库 54
      • 3.11 返回多值 56
      • 3.12 导入其他 Solidity 源文件 57
      • 3.13 全局可用变量 57
      • 3.13.1 区块和交易属性 57
      • 3.13.2 地址类型相关 58
      • 3.13.3 合约相关 58
      • 3.14 以太币单位 58
      • 3.15 存在、真实性和所有权合约的证明 59
      • 3.16 编译和部署合约 60
      • 3.17 总结 62

      第 4 章 开始使用 web3.js63

      • 4.1 web3.js 概述 63
      • 4.1.1 导入 web3.js64
      • 4.1.2 连接至节点 64
      • 4.1.3 API 结构 65
      • 4.1.4 BigNumber.js66
      • 4.1.5 单位转换 66
      • 4.1.6 检索 gas 价格、余额和交易细节 67
      • 4.1.7 发送以太币 68
      • 4.1.8 处理合约 69
      • 4.1.9 检索和监听合约事件 71
      • 4.2 为所有权合约创建客户端 73
      • 4.2.1 项目结构 74
      • 4.2.2 创建后端 74
      • 4.2.3 创建前端 76
      • 4.2.4 测试客户端 80
      • 4.3 总结 82

      第 5 章 创建钱包服务 83

      • 5.1 在线钱包和离线钱包的区别 83
      • 5.2 Hooked-Web3-Provider 和 EthereumJS-tx 库 84
      • 5.3 分层确定性钱包 87
      • 5.4 密钥衍生函数 87
      • 5.5 LightWallet88
      • 5.6 创建钱包服务 89
      • 5.6.1 必要条件 89
      • 5.6.2 项目结构 90
      • 5.6.3 创建后端 90
      • 5.6.4 创建前端 91
      • 5.6.5 测试 97
      • 5.7 总结 101

      第 6 章 创建智能合约部署平台 102

      • 6.1 计算一个地址的交易 nonce102
      • 6.2 solcjs 概述 104
      • 6.2.1 安装 solcjs104
      • 6.2.2 solcjs API104
      • 6.3 创建合约部署平台 107
      • 6.3.1 项目结构 108
      • 6.3.2 创建后端 108
      • 6.3.3 创建前端 113
      • 6.3.4 测试 117
      • 6.4 总结 118

      第 7 章 创建投注 App119

      • 7.1 Oraclize 概述 119
      • 7.1.1 Oraclize 的工作原理 120
      • 7.1.2 数据源 120
      • 7.1.3 真实性证明 121
      • 7.1.4 定价 122
      • 7.1.5 开始使用 Oraclize API123
      • 7.1.6 加密查询 127
      • 7.1.7 Oraclize Web IDE128
      • 7.2 处理字符串 128
      • 7.3 创建投注合约 130
      • 7.4 为投注合约创建客户端 133
      • 7.4.1 项目结构 133
      • 7.4.2 创建后端 134
      • 7.4.3 创建前端 135
      • 7.4.4 测试客户端 143
      • 7.5 总结 147

      第 8 章 创建企业级智能合约 148

      • 8.1 探索 ethereumjs-testrpc148
      • 8.1.1 安装和使用 149
      • 8.1.2 可用 RPC 方法 151
      • 8.2 什么是事件主题 153
      • 8.3 开始使用 truffle-contract154
      • 8.3.1 安装和导入 truffle-contract155
      • 8.3.2 建立测试环境 156
      • 8.3.3 truffle-contract API156
      • 8.4 truffle 概述 163
      • 8.4.1 安装 truffle163
      • 8.4.2 初始化 truffle163
      • 8.4.3 编译合约 165
      • 8.4.4 配置文件 165
      • 8.4.5 部署合约 166
      • 8.4.6 单元测试合约 169
      • 8.4.7 包管理 175
      • 8.4.8 使用 truffle 的操作台 178
      • 8.4.9 在 truffle 环境中运行外部脚本 179
      • 8.4.10 truffle 的创建管线 179
      • 8.4.11 truffle 的服务器端 186
      • 8.5 总结 187

      第 9 章 创建联盟区块链 188

      • 9.1 什么是联盟区块链 189
      • 9.2 什么是权威证明共识 189
      • 9.3 parity 概述 189
      • 9.3.1 Aura 的工作原理 190
      • 9.3.2 运行 parity191
      • 9.3.3 创建私有网络 192
      • 9.3.4 许可和隐私 197
      • 9.4 总结 198
      目录
      目录