关于学习EOS
截止2019.1.22日,EOS的学习资料已经有很多了。在此将自己所知的资料列举出来以供参考,顺序按照个人喜好由深到浅排列。
首推资料:
国人资料:
- 开源中国、简书、博客园、CSDN等等,有很多同行的文章【免费分享万岁】
- 笔者入门时买了一本书《区块链原理、设计与应用》。
- 国人的EOSFORCE【笔者对token奖励等等那些东西不感兴趣,对他们不是很了解,尊重他们】
- 目前网上看到两本书:《深入理解EOS 原理解析与开发实战》,《EOS区块链应用开发指南》,扫了一遍目录,感觉自己已经不需要买了,不会google或者想快速入门的可以花点小钱入个门,毕竟是全中文。
概述
刚研究EOS时挺懵的,虽然是C++写的,但是好多C14,C17特性,以及boost库等等,也是花了不少时间研究。仔细对比白皮书、源码以及网上的资料,最后梳理出EOS的主要知识点如下图:
EOS区块链最核心的、最底层的,无非“区块链”三个字。就好比刚学编程那会,数据的存储结构就包括“链”,每个节点都有一个指针指向下一个节点,区块链是每个区块都包含上一个区块的信息。
围绕最核心的“区块链”,可以讨论的有以下几点:
- EOS简介、源码下载、编译、调试;
- EOS数据,包括数据结构和存储方式两个部分。其中数据结构包括链核心数据结构(区块、交易、动作)、非链核心数据结构(账户、密钥等)以及用户智能合约数据结构;数据存储包括内存数据库、Log文件持久化以及其它插件(mongodb_plugin、history_plugin等);
- 账户与权限系统,石墨烯系列特有的,不同于其它区块链平台;
- Token与资源系统。Token先简单的认为它是数字货币,以后再聊。资源包括CPU、带宽、内存等等,尤其内存很重要;
- 区块生产和区块同步。这一部分等于是将前面的静态数据(数据、账户、权限、token、资源)盘活,主要可以研究共识算法、网络通信;
- 智能合约开发。基于EOS来开发业务代码,C++编写,固定的套路,稍微研究研究就可以上手;
- 并行。截止2019.1.22,EOS最新版本1.6.0,基本没有实现相关代码,记得最早Dawn版本是有的,查了github记录是被删了,具体情况没有深入研究;
- 跨链。又一个暂未看到太多成熟成果的话题。跨链和并行都实现了,才可能,有可能,达到当时宣传的TPS。目前官网最大,真实,TPS,3000多。笔者测试环境可能是服务器不够奢华,一直不超过100TPS;
- 部署和维护。主要涉及k8s和docker相关技术、数据备份与容灾等等问题;
- 治理。笔者理解为各种开大会、投票,然后将结果实现,并应用到EOS中。具体不清楚,也不大关注。
当然,围绕上述话题,可以延申出很多细节知识点,后续有时间再补充。