首页>参考读物>计算机科学与技术>软件与程序设计

深入理解EOS:原理解析与开发实战
作者 : 李万才 林琪钧 郭琦康 廖洋阳 著
丛书名 : 区块链技术丛书
出版日期 : 2018-12-18
ISBN : 978-7-111-61529-3
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 266
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

内容简介
这是一部从源码层面剖析EOS原理和全方位讲解EOS开发实战的著作。
作者是EOS全球生态系统中具有影响力的EOS社区引力区的联合创始人和核心团队成员,是引力区在EOS主网上的研究和实践成果,得到了EOS官方原产品副总等多位EOS生态领袖的一致好评和强烈推荐。
全书一共7章,从EOS的优势技术、源码实现、原生功能使用、智能合约开发、基于EOS的Dapp开发和侧链开发等6个方面,详细的讲解了从系统原理到软件部署,再到开发的全部细节,适合初学者和具有一定开发基础的读者阅读。
第一部分 原理篇(第1~3章)
首先,从EOS项目诞生的初衷、愿景、发展历程和版本更迭等角度宏观地介绍了EOS项目本身;然后,从EOS的共识机制、账户体系、网络资源Token化、节点治理、脚本与虚拟机等角度展现了EOS的技术优势;最后,从源码角度分析了EOS项目的整体架构、共识算法代码实现、网络层代码实现、区块打包与广播代码的实现和关键工具的代码实现。
第二部分 实战篇(第4~7章)
这部分主要从实战开发的角度详细讲解了EOS网络的启动、原生功能的使用、智能合约的开发、DApp的开发、基于EOS的侧链和竞争链的开发等内容。不仅详细讲解了各项开发所涉及的技术点、开发方法、开发技巧,而且还包含大量的实战案例。
附录部分展望了EOS主网优化的方向,涉及百万TPS目标如何实现和跨链交互等方面的内容。

图书特色

具有全球影响力的EOS社区引力区联合创始人撰写,EOS官方原产品副总裁等多位专家力荐
从EOS的概况、优势技术、源码实现、原生功能、智能合约、DApp、侧链等7个维度详细讲解EOS的原理和开发实践,已辅导超过20万EOS社区成员
Dive into EOS
Theory Analysis and Developmental Practices
深入理解EOS
原理解析与开发实战
李万才 林琪钧 郭琦康 廖洋阳  著

图书前言

为什么要写这本书
2014年的夏天,我大部分时间都待在热气腾腾的深圳,身边的矿机嗡嗡作响,环境温度在40度以上,可那时我们这些创业者们却好似身在冰窟,心里无比凄凉。那时的我们没见过多少世面,也没经历过太多波折,比特币、莱特币、狗狗币是我们仅有的对区块链这座冰山的小小一角的窥视。但也正是在那个绝望的时刻,我接触到了Bitshares,这也是Daniel Larimer的第一个项目,当然觉得特震撼。在那个时代,出现这个级别的产品,简直就如同比特币最初的横空出世,让人敬畏。
天才总是充满着野心和想象力,之后的STEEM,现在的EOS,都是Daniel Larimer(以下简称BM)不断为区块链,乃至整个商业世界带来的超级创新项目。特别是EOS,它勾勒出了区块链+云计算+大规模商业应用的未来图谱,让所有对区块链心生好感的人都充满了期望:这种技术如果普及了,能从多大程度上改变世界,改变我们自身呢?
为什么我们如此热爱EOS,并选择EOS作为一个智能合约平台的载体呢?我先给出自己的理由:
(1)我喜欢与众不同的人和不随波逐流的人,尤其是还能做出令人觉得瞠目结舌的产品的人。我是BTS和STEEM的深度用户,我觉得它们优雅、精致、超前于时代;我觉得它们的架构和技术能够实实在在地让我感到既酷又适于每日品玩。我看过BM的很多文章,那种既带着些许忧郁感又拥有自己的哲学高度,还能深入到技术细节的文字,让我感触良多。也许,在潜意识中,我也想成为BM那样的人吧。
(2)EOS是一个从实践中、从小而美的应用中、从历经时间磨砺的系统中抽象出来的某种设计理念的实体化,不同于各种无中生有、野心勃勃的大概念和大设想,它更为亲切和熟悉,像是一个被顺水推舟解出的方程式,像是一部美剧中可独立成章的主线剧情,它自然而然地发生,无比贴合你一直以来的期待。
(3)看好EOS,是一个迭代更新的过程。随着不断地为EOS贡献微小的价值,我能感受到价值的积聚,以及这种价值的吸引力。而随之而来的成就感又激励我进一步做出能力所及的更多贡献,在这个过程中,我和EOS在某种层面上已经融为一体。我经常笑谈,自己是EOS的看门狗,便是此意。
(4)EOS具有无限性。虽然EOS会受到现有硬件和软件架构的限制,但是EOS的出现对于创新的激发是无限的。因为它让很多人意识到这个巨大生态的价值,以及各种商业逻辑迁移的可能性。就我所知,很多针对EOS的创新已经在酝酿之中了。我相信,EOS主网上线之日起的一个月内,会有数以百级的应用展现在我们面前。
面对自己钟爱之物时,我们总想为它赋予更深刻、更高尚的意义,也许我也不自觉地美化了它,但是,我不会觉得惭愧,因为我忠于这种内心的选择,而且不会因此伤害到其他人。
当然,EOS目前还处在发展初期,还没有那么成熟和完善,我经常会被问到的一个问题:我想学习EOS的开发,怎么入门?确实,我们特别需要一个有体系的、专业的能带着程序员、爱好者们真正走入EOS这个新的技术平台大门的教材,这也是这套书的最终目的。我们在引力区集合了自己的技术团队和社区的开发者们,通过社区大家长期深入沟通交流,找到了帮助初学者实现入门到精通的学习方法,总结出了我们真正需要的那些知识和需要跨过的那些门槛,然后以体系化的方式整理成册。我们的目标很明确,帮助EOS社区培养更多的开发者,也帮助开发者们进入一个超级公链生态。我觉得,公链和人之间是通过这种引力的方式互相链接起来的,这才是区块链的本质。
读者对象
这里根据软件需求划分出一些能使用本书的用户团体:
区块链技术初学者
EOS技术爱好者
基于EOS的DApp开发者
EOS生态建设者
开设相关课程的大专院校师生
本书特色
本书基于EOS引力区的技术团队在EOS主网上累积的实战技术开发经验撰写而成,书中介绍了EOS项目的技术全貌,内容深入浅出,旨在帮助读者快速理解EOS技术亮点以及实现过程。从实际软件开发案例、EOS原生功能使用、智能合约开发,以及基于EOS的DApp开发和侧链开发等几个方面,详细介绍了从软件部署到具体开发的全部细节,适合初学者和具有一定开发基础的读者阅读。
如何阅读本书
本书分为两大部分:
第一部分为原理篇,本篇从三方面着手,即括基础介绍、技术优势分析和代码原理分析三部分,由浅入深地介绍了EOS系统的原理。
第二部分为实战篇,通过项目实例详细讲解EOS主网原生功能使用、智能合约开发、基于EOS的DApp开发和基于EOS的侧链/竞争链开发。
其中第二部分通过具体的开发项目,手把手地带初学者快速掌握基于EOS的项目开发并掌握DApp开发逻辑,建议有一定开发能力的用户直接阅读这部分。对于初学者,则建议从头阅读,在掌握了EOS基本技术原理的基础再学习第二部分。
除上述两大部分,本书最后还包含一个附录。附录部分介绍了几个EOS主网的系统优化方向。
勘误和支持
除封面署名外,参与及支持本书编写工作的还有blockone刘函、eoscannon施瑞琦、eoshuobipool闻华强、eosnewyork Kevin、eoscanada Richard、liquideos Galian、EOS开发者社区陈澄、eoslaomao赵余、eosasia郭达峰、eosbixin吴广庚、eosbeijing李想、eosmeetone高锋、eosflytomars龙志峰、starteos李昂、eosstore陆海峰、GBAC郑玉山、比特股理事刘嘉陵、zbeos游凯强、oraclechain赵微、eos硅谷Bo、eosauthority Roshan。
由于作者水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。为此,我特意创建了一个在线支持与应急方案的二级站点http://book. eosgravity.com/。你可以将书中的错误发布在Bug勘误表页面中,同时如果你遇到任何问题,也可以访问Q&A页面,我将尽量在线上为读者提供最满意的解答。书中的全部源文件除可以从华章网站下载外,还可以从这个网站下载,我也会将相应的功能更新及时发布出来。如果你有更多的宝贵意见,也欢迎发送邮件至邮箱liwancai@eosgravity.com,期待能够得到你们的真挚反馈。
致谢
这本书的出版发行,得益于众多社区成员、朋友们的帮助。
首先要感谢EOS引力区在本书成文过程中提供的帮助。因为有了EOS引力区的专业知识、敬业态度及为区块链无私奉献的精神,才有了这本书的顺利问世。
其次也要感谢GBC引力区块链、币晓爷、哈希女神、链就社、币乎、币车等媒体、项目方在本书出版发行过程中提供的支持。
同时要感谢薛虹森、李俊、沈雪红、孙振、陈翔、周宇、彭有旺、星辰、仲一、陈强、陈建清、康枝旺、马健宁等各位引力节点们助力EOS生态繁荣,以及为本书提供的全方位的反馈。
还要感谢邱琪、何德林、张怡军、刘定强、陈科伟、杨建锋、肖志铭、卜守强、刘晓凯等社区活跃成员一路的陪伴与鼓励。
感谢众多的社区成员给出的宝贵意见,他们直接或间接参与了本书的撰写工作。由于篇幅有限,在此我们无法一一致谢,但我们一直心怀感恩。在区块链探索自由的道路上,感恩一路有你。
感谢张国强老师的引荐,在你的努力下才促成了这本书的合作与出版。
感谢机械工业出版社华章分社的编辑杨福川和孙海亮,在这几个月的时间中始终支持我们的写作,你们的鼓励和帮助引导我们顺利完成全部书稿。
最后感谢我的父母、妻子小红以及女儿西西,你们的陪伴和理解时刻为我灌输着信心和力量!
谨以此书献给我最亲爱的家人,以及众多热爱EOS的朋友们!

李万才

上架指导

计算机\区块链

封底文字

EOS是石墨烯区块链架构的代表作品,也是高性能智能合约平台的领军者。本书为爱好者和开发者提供了珍贵的入门到精通的全面教程,必然会在EOS公链生态的建设中发挥重要作用。 
——巨蟹(刘嘉陵) 全球石墨烯区块链应用中心理事长/比特股理事
开发者是新世界的创造者。区块链技术本身就源于一群密码学朋克开发者,此后的发展和演进更是离不开前赴后继投身其中的开发者们。希望这本书可以给有意加入这个新世界的开发者们提供帮助,说不定下一个改变世界的程序员就在其中。
——老猫(余文卓) BigONE CEO/雄岸基金管理合伙人
李博士是我认识的EOS社区生态建设者中为数不多的让我敬佩的人之一。他长久以来以一个EOS持有者、学者、师长、兄长的身份活跃在社区建设中,此书更是融合了他对于EOS的理解和热爱。内容深入浅出,适合区块链开发者和爱好者充分了解EOS的技术和理念。
——曹飞 火币矿池总经理
《深入理解EOS》深入浅出地讲解了区块链的运行原理、共识机制、治理模式、智能合约及应用实现等内容,十分值得推荐。
    ——胖哥(施瑞琦) EOScannon联合创始人
李博士热爱EOS并全身心投入其中,推动着整个EOS生态蓬勃发展。本书条理清晰,带领读者浅入深出地了解EOS,从基本常识到共识机制,再到节点治理,环环相扣地介绍了EOS的每一个环节和知识点,对开发者会很有帮助。
——李昂 Starteos首席执行官
EOS是用户真正可以应用到全行业的区块链技术,互联网通过它实现价值互联网进化。本书系统的介绍了EOS的技术和原理,每一位开发者都不应错过。
——高锋 EOS MEET.ONE创始人

作者简介

李万才 林琪钧 郭琦康 廖洋阳 著:作者介绍
李万才
复旦大学博士,国际上有影响力的区块链技术专家,EOS基金会董事,EOS引力区联合创始人和理事,国家技术转移东部中心区块链产业中心特聘专家,全球石墨烯区块链应用中心理事。
复旦大学计算机科学技术学院外聘教师。长期在科研院所从事技术研发工作,是数据加密、网络安全及物联网技术专家。主持和参与过国家级、省部级科研项目多达数十项,发表EI、SCI论文十多篇,获得十多项专利。

推荐序

关于EOS,总有些狂想是可以实现的(后附英文原版)
托马斯Block.One原产品副总裁
热爱EOS的人至今已经有数千万了,每个人都有自己的理由。EOS推崇者和爱好者们,可能来自不同的国家,拥有不同的经历,职业并不一定相同,甚至所用的语言也完全不同,他们却拥有同样的坚持和热爱,怎么看这都是一件神奇的事儿。EOS正在用自己的魅力感染着更多人了解自己进而了解什么是区块链。
对于EOS相关信息的研究及传播,EOS的爱好者、研究者、BP 候选人都尽了自己最大的努力。
相信本书的读者应该有一部分阅读过我的《 EOS.IO公约草案0.1版本》,其中我提到一个非常重要的原则“仅限英语”,因为直到现在我依然认为多语种会带来理解上的偏差。当然,其中还有一部分原因是我对其他语言的掌控能力可能不如英文。所以在李万才博士告诉我,他的这本书写完了,并希望我阅读之后撰写一篇序言时,我的第一反应是“我应该怎么去读它”以及“我是否会对他的著作内容产生理解偏差”。
中文并不是一门可以快速从入门到精通的语言,它的复杂程度是难以用语言进行描述的。还好李万才博士的翻译团队用他们的专业和耐心辅助我读完了这本书。
从内容上说,这是一本对EOS爱好者甚至区块链观察者非常友好的书。它是一本专业的书籍没错,但它在最大程度上做到了用最通俗的语言去完成EOS系统原理的文字表述,哪怕是对EOS了解并不深刻的读者,也能够看懂这本书在说什么。在实际操作层面,本书中基于EOS的DApp开发和基于EOS的侧链/竞争链开发,也做到了尽可能详细,它像是一本产品说明书一样,让初学者也能够尽快上手。
我相信李万才博士在写这本书时,一定倾注了自己对EOS强大的热爱,否则它不会同时具备“通俗易懂”和“内容深刻”两个特征。如果说原理篇是新手入门的基础、实战篇是手把手教大家开发的教程说明,那么附录部分,则是为读者完成认知升级的含金量较高的一个部分。李万才博士在附录中所展示的内容并不是一些专属名词或者参考网站,而是EOS主网的系统优化方向。这不是刚接触EOS的人能够快速抵达的思想高度,也并不是每一个开发EOS的人都能拥有的思想深度。所以,这虽然是一本初学者都能看懂的书,但在对EOS的认知和理解上,李万才博士确实是深刻而富有有远见的。从他对EOS原理介绍时所用的激情满满的文字中,你可以看到他对EOS的执着。如果你也深切地热爱EOS,并坚信EOS的未来无限美好,那么,读这本书时你所获得的灵魂共鸣不会比我少。
至于什么人需要阅读这本书,我想远远不止EOS的爱好者、研究者和开发者,还应该包括区块链的爱好者、研究者、开发者和观察者。当然,还应该包括对新生事物充满好奇的人们。
EOS每天都在不断发展壮大,每一个脚印都伴随着惊叹。它诞生在聚光灯之下,一举一动都那样引人注目,中文名的挑选轻而易举地使它成为区块链行业的头条新闻,主网相关的资讯都能在短短几小时内传播到世界各地—对EOS的热爱和关注,可以打破时间和地域的格局,这是一件多么伟大的事情。何况即便是到了已经被大众所认知的今天,EOS也以自己与众不同方式在生长,逐渐从小众的狂热变成了大众的认可。
今天如果还有人问区块链是否可以落地、有什么已经落地的成果,那么EOS和DApp必定是答案之一,这也是我在序言标题中所说的“关于EOS,总有些狂想可以实现”。EOS三个字母、BM、千万人的共同狂热,这些词汇聚在一起,是这么美妙而令人激动。
每个人都有自己的技术信仰,至于你的信仰是否能够成真,只看你愿意为这个技术付出多少贡献,以及这个技术能被拥有信仰的人们推进到怎样的地步。EOS是我和李万才博士,还有众多的EOS爱好者们共同的、不可动摇的信仰。希望这本书能够为读到这篇序言的你带来一些帮助,也很高兴能够与李万才博士一起为EOS的推广做出一些微薄的贡献。关于EOS,未来已来,梦想可期。

图书目录

推荐序
前言
第一部分 原理篇
第1章 EOS基本介绍2
1.1 区块链2.0的痛点2
1.2 EOS项目定义与愿景5
1.3 EOS项目的发展历程8
1.4 EOS项目版本更迭简况与现状11
第2章 EOS项目技术优势解析15
2.1 EOS的共识机制(BFT-DPoS)16
2.1.1 超级节点竞选18
2.1.2 持币者投票19
2.1.3 超级节点治理20
2.2 EOS的账户体系20
2.2.1 基于角色的多层级账户体系21
2.2.2 账户权限管理21
2.2.3 强制延迟消息执行策略22
2.2.4 密钥丢失或被盗后的恢复23
2.3 网络资源Token化23
2.3.1 带宽和日志存储23
2.3.2 计算和计算积压(CPU)24
2.3.3 状态存储器(RAM)24
2.4 EOS的节点治理25
2.4.1 宪法和协议指导下的关键操作25
2.4.2 宪法和协议的升级26
2.5 脚本与虚拟机27
第3章 EOS代码原理分析29
3.1 EOS项目代码框架总览29
3.1.1 脚本层29
3.1.2 插件层31
3.1.3 合约层36
3.1.4 支持层39
3.2 共识算法代码实现42
3.2.1 DPoS机制实现关键代码分析43
3.2.2 BFT算法实现关键代码分析53
3.3 网络层代码实现61
3.4 区块打包与广播的代码实现66
3.5 系统合约层代码实现70
3.5.1 eosio.system合约代码分析71
3.5.2 eosio.Token合约代码分析79
3.5.3 eosio.msig合约代码分析82
3.5.4 eosiolib依赖库84
3.6 EOS关键工具的代码实现89
3.6.1 nodeos代码实现89
3.6.2 cleos代码实现92
3.6.3 keosd代码实现94
第二部分 实战篇
第4章 EOS网络启动与原生功能介绍104
4.1 EOS项目安装部署与编译104
4.2 配置文件修改与测试106
4.3 EOS测试网启动108
4.3.1 Bios节点109
4.3.2 预出块节点109
4.3.3 普通节点111
4.4 EOS项目常用功能112
4.4.1 链上信息查询112
4.4.2 钱包管理126
4.4.3 账户创建与权限管理132
4.4.4 代币的交易135
4.4.5 交易的签名与发送137
4.4.6 系统资源获取138
4.5 智能合约的部署与调用140
第5章 智能合约开发142
5.1 智能合约简介142
5.1.1 智能合约定义143
5.1.2 智能合约历史148
5.1.3 智能合约优劣势154
5.1.4 智能合约应用场景155
5.2 EOS中的智能合约165
5.3 EOS智能合约文件结构169
5.3.1 .abi文件170
5.3.2 .wasm/.wast文件171
5.3.3 eosioapp编译器使用172
5.4 EOS智能合约依赖库介绍179
5.5 EOS智能合约实战项目196
5.5.1 HelloWorld合约196
5.5.2 数据库合约200
5.6 常见bug与debug思路总结205
第6章 基于EOS的DApp开发207
6.1 什么是DApp207
6.1.1 比特币是第一个DApp208
6.1.2 DApp命名的原因208
6.1.3 DApp运作的法律模型209
6.2 开发DApp的一般流程210
6.2.1 建立共识的机制210
6.2.2 设计分发Token的机制211
6.2.3 常见DApp开发阶段213
6.3 DApp的应用领域214
6.3.1 游戏领域214
6.3.2 社交/内容分发平台216
6.3.3 数字货币钱包216
6.4 基于EOS的DApp开发思路217
6.5 DApp开发实例—网页发币227
第7章 基于EOS的侧链/竞争链开发232
7.1 侧链/竞争链的概念与起源232
7.2 侧链实现方式235
7.3 主流侧链项目239
7.4 EOS侧链242
7.5 EOS竞争链245
附录A EOS系统优化方向展望248

教学资源推荐
作者: Y. Daniel Liang
作者: [美]托尼·加迪斯(Tony Gaddis)著
作者: 贾伯琪 顾为兵 苏仕华 张四海 何克东 编著
作者: 刘艺 等
参考读物推荐