描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787301357965
1.理论与实践相结合:基于工程代码,每个理论都有对应的实践代码讲解,读者参考源码完成实例,就可以看到实践效果。
2.提供实训与学习问答:每章都有实训和学习问答,方便读者在学习后尽快巩固知识点,以便做到举一反三,学以致用。
3.内容知识体系系统、完整:剖析区块链的主要算法与底层原理,系统介绍区块链去中心化应用的开发流程。
4.易学易懂,实战项目检验:零基础读者也能轻松学会Python语言和区块链应用开发两大知识体系。
《Python区块链应用开发从入门到精通》全面系统地介绍了Python语言区块链应用工程师所需的基础知识和相关技术,主要分为Python基础篇、区块链技术篇和区块链开发篇三部分。
全书共10章,其中第1~3章为Python基础篇,介绍Python语法基础、Python的语法特色、Python与数据库操作等内容;第4~6章为区块链技术篇,介绍初识区块链、区块链的技术原理、区块链技术的发展趋势;第7~10章为区块链开发篇,介绍Solidity智能合约开发的入门和进阶、Python语言离线钱包开发、通过Python和Solidity开发一个“赏金任务系统”,项目中将使用FISCO BCOS联盟链作为基础,结合Django框架,并应用Python-SDK与区块链交互完成数据的读写操作,完成一个区块链的Web项目。
《Python区块链应用开发从入门到精通》内容系统全面,案例丰富翔实,既适合想学习Python语言编程和区块链开发的初学者阅读,也适合作为区块链行业从业者、金融科技爱好者的学习用书,还可以作为广大职业院校相关专业的教材参考用书。
第1篇 Python基础篇
第1章 Python语法基础
1.1 初识Python
1.1.1 为什么要学习Python
1.1.2 Python开发环境搭建
1.1.3 选择一个适合的IDE
1.1.4 写下你的第一个Python程序
1.2 Python基础语法
1.2.1 数据类型
1.2.2 常用操作符
1.2.3 流程控制语句
1.2.4 了解Python的编码风格
1.3 输入输出(IO)
1.3.1 文件的打开与读取
1.3.2 文件与目录操作
1.3.3 JSON格式处理
1.4 函数
1.4.1 函数的基本定义
1.4.2 函数的调用
1.4.3 递归函数
1.4.4 匿名函数
1.4.5 装饰器
1.5 异常处理
1.5.1 错误处理思想
1.5.2 try语句使用
1.5.3 断言语句
1.6 面向对象编程
1.6.1 面向对象的编程思想
1.6.2 Python的面向对象特色
第2章 Python的语法特色
2.1 Python的数据处理工具
2.1.1 迭代器
2.1.2 切片
2.1.3 数据生成器
2.1.4 lambda表达式
2.2 模块与包
2.2.1 第三方模块的安装与使用
2.2.2 NumPy
2.2.3 OpenPyXL
2.2.4 Shapely
2.3 并发编程
2.3.1 并发编程思想
2.3.2 多进程编程
2.3.3 多线程编程
2.4 正则表达式
2.4.1 正则表达式的基本规则
2.4.2 在Python中处理正则表达式
2.5 标准库的使用
2.5.1 Map简介
2.5.2 Reduce简介
2.5.3 sorted简介
2.5.4 filter简介
2.6 网络编程
2.6.1 TCP协议简介
2.6.2 如何搭建TCP服务器
2.6.3 HTTP协议简介
2.6.4 如何搭建Web服务器
第3章 Python与数据库操作
3.1 Python与关系型数据库
3.1.1 Python与MySQL开发环境准备
3.1.2 通过Python对MySQL数据进行增改删
3.1.3 通过Python查询MySQL数据
3.2 Python与非关系型数据库
3.2.1 Python与MongoDB开发环境准备
3.2.2 通过Python操作MongoDB数据库
3.2.3 Python与Redis开发环境准备
3.2.4 通过Python操作Redis数据库
第2篇 区块链技术篇
第4章 初识区块链
4.1 区块链的诞生与发展
4.1.1 区块链的诞生
4.1.2 认识密码朋克组织
4.1.3 区块链技术的高速发展
4.2 P2P网络
4.2.1 P2P网络概述
4.2.2 P2P网络的搭建要点
4.2.3 区块链网络的数据同步机制
4.3 区块链的数据结构
4.3.1 哈希函数
4.3.2 时序的链块式结构
4.3.3 默克尔树
4.4 PoW机制
4.4.1 分布式网络中共识的意义
4.4.2 什么是PoW
4.4.3 PoW的本质原理
4.5 UTXO与交易
4.5.1 什么是UTXO
4.5.2 比特币交易模型
4.5.3 交易脚本
4.6 区块链账本的安全与挑战
4.6.1 双花攻击
4.6.2 51%攻击
4.6.3 激励相容
第5章 区块链的技术原理
5.1 以太坊详解
5.1.1 以太坊概述
5.1.2 智能合约
5.1.3 外部账户与合约账户
5.1.4 世界状态树
5.1.5 以太坊经济体
5.2 区块链的共识算法
5.2.1 PoS原理
5.2.2 DPoS原理
5.2.3 PBFT原理
5.3 区块链的技术方向
5.3.1 跨链
5.3.2 同态加密
5.3.3 零知识证明
5.3.4 二层网络(Layer2)
5.3.5 NFT
第6章 区块链技术的发展趋势
6.1 公链与联盟链
6.1.1 公链与联盟链的对比
6.1.2 常见联盟链平台
6.1.3 BaaS平台
6.1.4 区块链应用的合规性
6.2 联盟链与基础设施建设
6.2.1 数字化身份
6.2.2 数字人民币
6.2.3 存证溯源平台
6.3 公链的热门应用方向
6.3.1 去中心化交易所
6.3.2 DeFi应用简介
6.3.3 IPFS应用简介
6.3.4 DFINITY应用简介
第3篇 区块链开发篇
第7章 Solidity智能合约开发入门
7.1 智能合约运行原理与环境搭建
7.1.1 智能合约的概念
7.1.2 智能合约的运行机制
7.1.3 智能合约运行三要素
7.1.4 智能合约开发环境搭建
7.1.5 Remix环境简介
7.1.6 初识Solidity
7.2 Solidity基础语法
7.2.1 Solidity基础数据类型
7.2.2 函数
7.2.3 修饰符
7.2.4 内建对象
7.2.5 内建函数
7.2.6 事务控制
7.2.7 自定义修饰符
7.3 复合数据类型与数据结构
7.3.1 自定义结构
7.3.2 数组和动态数组
7.3.3 映射
7.3.4 address类型
7.3.5 memory与storage
7.4 Solidity面向对象编程
7.4.1 接口
7.4.2 函数选择器与接口ID
7.4.3 library
7.4.4 合约继承
7.4.5 abstract关键字
第8章 Solidity智能合约开发进阶
8.1 Solidity经典案例
8.1.1 智能合约开发的一般步骤
8.1.2 土豪发红包
8.1.3 我要开银行
8.1.4 智能拍卖
8.2 ERC标准
8.2.1 ERC概述
8.2.2 ERC-20标准
8.2.3 ERC-165标准
8.2.4 ERC-721(NFT标准)
8.3 可升级合约
8.3.1 不可篡改与可升级之间的矛盾
8.3.2 跨合约调用
8.3.3 通过底层函数调用合约
8.3.4 主—从式可升级合约
8.3.5 代理—存储式可升级合约
8.4 合约开发最佳实践
8.4.1 最佳实践概述
8.4.2 工厂模式
8.4.3 存储注册表模式
8.4.4 遍历表迭代器
8.4.5 避免重入攻击
8.4.6 警惕外部合约调用
8.5 Python与智能合约调用
8.5.1 RPC原理分析
8.5.2 Python-SDK简介
8.5.3 Python调用智能合约步骤
8.5.4 节点连接
8.5.5 ABI分析与编译
8.5.6 通过Python调用智能合约
第9章 Python语言离线钱包开发
9.1 区块链钱包原理
9.1.1 区块链钱包的核心原理
9.1.2 助记词如何生成与验证
9.1.3 如何存储私钥
9.2 区块链钱包核心功能实现
9.2.1 钱包如何支持Coin转移
9.2.2 钱包如何支持Coin查询
9.2.3 ERC-20标准实现与部署
9.2.4 钱包如何支持Token转移
9.2.5 钱包如何支持Token查询
9.2.6 事件订阅
第10章 项目实战:开发“赏金任务系统”区块链
10.1 项目需求分析与通证设计
10.1.1 项目需求与痛点分析
10.1.2 项目整体设计
10.1.3 FISCO BCOS简介
10.1.4 搭建FISCO BCOS开发环境
10.1.5 SDK的使用
10.2 企业级智能合约设计与实现
10.2.1 用户合约设计与实现
10.2.2 积分合约设计与实现
10.2.3 任务合约设计与实现
10.3 赏金任务系统核心功能实现
10.3.1 Django简介与安装
10.3.2 Django的基础使用
10.3.3 用户注册功能的实现
10.3.4 登录与Session处理
10.3.5 任务发布
10.3.6 任务信息查询
10.3.7 任务状态变更
10.3.8 项目总结
为什么写这本书
Web 3.0 旨在构建一个更加公平、开放、自主、安全且充满活力的创新互联网生态,为人们带来全新的互联网体验和价值创造机会。当今我们正处于Web 3.0的过渡阶段,虽然Web 3.0的理念和技术,如区块链、去中心化应用等受到人们越来越多的关注,但Web 3.0的全面成熟和普及仍面临着诸多挑战和障碍。本书旨在更好地普及区块链技术,因为区块链技术是Web 3.0的重要基石。
学习区块链技术时,选择一门编程语言作为切入点是非常有必要的。Python近些年发展迅猛,在IEEE Spectrum、TIOBE等平台发布的编程语言排行榜上,早已稳居前列甚至榜首的位置。Python是一门入门容易、开发方便的编程语言,在降低开发者门槛方面无出其右。目前,Python也是区块链生态中发展势头非常好的编程语言。例如,以太坊就拥有Python开发的客户端,而且使用Python与区块链进行交互也非常方便。正因如此,Python与区块链的结合可能更容易推广区块链技术。
本书的特点是什么
(1)理论与实践相结合,每个理论都有对应的实践代码讲解,读者参考源码,完成实例,就可以看到实验效果。
(2)提供实训与学习问答,方便读者在阅读后尽快巩固知识点,以便做到举一反三,学以致用。
(3)内容知识体系系统、完整,可以快速帮助读者搭建区块链应用开发知识体系。
本书适合哪些读者
- 编程初学者:适合对编程感兴趣,希望通过学习Python语言踏入编程领域的新手,特别是对区块链技术有浓厚兴趣的人群。
- Python开发者:适合已经掌握Python编程基础,希望拓展自己的技能范围,深入学习区块链应用开发的程序员。
- 区块链行业从业者:适合在区块链领域工作的专业人士,他们需要深入理解区块链原理、智能合约开发和DApp(分布式应用)的构建。
- 金融科技爱好者:适合对金融科技创新特别感兴趣的人士,特别是希望探索在金融行业中应用区块链技术的研究者和实践者。
- IT专业学生:适合计算机科学、软件工程或相关专业的学生,他们希望在校期间掌握最新的技术趋势,并希望在课程学习或毕业设计中涉足区块链这一前沿领域。
- 技术创新探索者:适合对新兴技术好奇,愿意不断学习和尝试的技术爱好者,特别是渴望自建项目,将区块链应用于解决实际问题的创新者。
写给读者的学习建议
阅读本书时,如果读者是零基础,建议读者从第1篇Python基础篇开始学起,如果读者已经掌握Python编程基础,可以跳过第1篇,直接从第2篇开始阅读。同样,如果读者对区块链技术原理有所了解,但对Python不太了解,可以从第1篇开始阅读,在区块链原理部分可以选择跳过熟悉章节。
很多区块链或Python开发的初学者可能会有一个认识误区,认为编码能力比掌握原理更重要。这个问题在区块链行业有些例外,因为区块链这个行业有些特殊,它会受到市场因素的影响。笔者在很多场合说过,掌握区块链技术原理将帮助开发者更深入地感受这一行业的独特魅力,并在这个行业内更好地立足。区块链应用开发虽然有一定的门槛,但对于有经验的开发者来说难度并不高,读者只要掌握了区块链原理、智能合约开发、区块链系统设计思想,就可以做出自己想要的区块链应用。
评论
还没有评论。