eos源码赏析
文章平均质量分 87
专注eos源码赏析,从代码的背后看eos的运行规律。
zhuxiangzhidi
这个作者很懒,什么都没留下…
展开
-
eos源码赏析(一):Ubuntu下eos代码编译
网上已经有很多关于btc的源码分析了,由于eos主网上线还需时日,且网上关于eos的源码解析较少,斗胆尝试着做一个系列的文,学习eos的源码,也提升一下自己的阅读代码的能力和对新知识的了解能力。要阅读赏析源码首先运行起来,看看大概是个什么样子,这样心里有个底,也就踏实多了。本文为系列文的第一篇,Ubuntu下eos代码的编译,是依据官网文档的指导完成的。官方文档链接:https://github....原创 2018-03-26 20:40:23 · 2008 阅读 · 0 评论 -
eos源码赏析(二):eos代码主分支架构
在上篇文章中我们完成了在Ubuntu操作系统编译eos的代码,我们会发现在原有的路径下会多出一个名为build的文件夹,那么这个文件夹里面有什么内容呢?这些东西是用来干什么的呢?古有庖丁解牛,现我们也将一一的分解eos代码主分支,看看这些代码都包含了什么内容,恰如我们看书都会先翻一下序文和目录一样,让我们大致看一下这些个【目录】,这样才能更容易打开eos的大门。 eos主目录下...原创 2018-03-31 10:46:22 · 7303 阅读 · 0 评论 -
eos源码赏析(三):eosd初始化
上篇文章以文件分类简单的介绍了eos代码的架构,由于eosiod在整个工程中是较为重要的,接下来的例子中我们将以eosiod为主线进行相关内容的分析和探讨,今天我们主要看一下eosiod的初始化相关内...原创 2018-05-07 22:25:03 · 1979 阅读 · 0 评论 -
eos源码赏析(四):基于boost::asio的httpserver架构
前言 eos代码更新很快,在4月初已经升级到3.0版本,随着版本的更迭,在各个操作系统下的编译、节点的运行都越来越集成化,不需要自己再一步步的下载依赖,如果感兴趣可以直接按照官方wiki进行编译。官方wiki地址:https://github.com/EOSIO/eos/wiki 一般不会出现什么错误,当然如果出现编译、测试节点运行出错的情况可以添加我个人微信(见本文最下方),我会尝试...原创 2018-05-20 16:06:53 · 2619 阅读 · 0 评论 -
eos源码赏析(五):EOS智能合约入门之无崖子传功虚竹
读过《天龙八部》小说或者看过《天龙八部》影视剧的朋友们对无崖子将自己毕生功力传给虚竹都应该不算陌生。我们平时在了解或者熟悉基于各种语言或环境的智能合约开发的时候都不可避免的接触到交易这个概念,即token从一个账户到另一个账户之间转移的过程,那么无崖子传功虚竹是否也是类似的一个过程呢?将功力从无崖子转到虚竹,今天我们就尝试着将这个过程通过eos智能合约开发的形式简单的展示一下。 ...原创 2018-06-25 22:20:07 · 818 阅读 · 0 评论 -
eos源码赏析(六):EOS智能合约入门金叶子兑换碎银
武侠小说中的群豪们似乎总不缺钱,经常有台词就是小二来两斤熟牛肉、两斤烧酒,不用找了,难道他们都这么有钱的么?熟悉金庸小说《鹿鼎记》的朋友应该对狗官吴之荣还有些印象,庄允城在书中给他夹了若干金叶子。金叶子直接花出去不太方便,需要兑换成银子再进行消费,那么,这个用金叶子换碎银的过程是怎么实现的呢,兑换的比例又有谁来决定呢,兑换的过程中收不收手续费呢,今天我们就以eos智能合约的方式来简单...原创 2018-07-05 22:50:17 · 674 阅读 · 0 评论 -
eos源码赏析(七):EOS智能合约入门之共识机制初探
从丐帮帮主及丐帮长老的选举说起。 金庸小说中塑造了众多丐帮帮主的形象,如汪剑通、萧峰、洪七公、黄蓉、鲁有脚、耶律齐、史火龙等。这些帮主在未当选帮主之前大都是丐帮中普普通通的一员,后来经过投票选举---也就是吐唾沫的方式当上了帮主。这和现在eos的各大BP的竞选类似,eos的持有者可以通过投票的方式或者代理投票的方式选择自己意向中的BP,今天我们就从选举和投票的角度来谈...原创 2018-07-05 23:05:18 · 2298 阅读 · 0 评论 -
eos源码赏析(八):EOS智能合约入门之区块生产
插件初始化 区块的生产是在producer_plugin里面实现的,和其他所有插件一样,插件初始化的时候从配置文件中读取相关参数如:私钥相关、区块产生相关、交易设置相关等参数并写到内存中去,接下来会使用到。和所有其他插件的初始化一样,大都是从配置文件中读取,然后根据关键字去匹配,匹配成功则写入内存,代码不再粘贴。C++Tips在插件启动的时候会调用on_block()函数,在这个函数中...原创 2018-07-17 23:08:32 · 1710 阅读 · 0 评论 -
eos源码赏析(九):EOS智能合约入门之区块打包和广播机制
首先感谢群里的大佬中山狼、linx、阿泥豆等各位给予的指导。在上篇文章中我们写到了eos中区块产生的调用流程,其主要过程是从插件中的producer_pligin去产生区块,而实际产生区块的过程却是在chain中的controller.cpp中实现的。通过以前的文章我们知道,在eos区块的产生并不仅仅是单独产生的过程,它还需要进行区块打包、入库、广播、上链等过程,今天我们就来谈谈区块产生之后又...原创 2018-07-21 19:51:09 · 1999 阅读 · 0 评论 -
eos源码赏析(十):EOS智能合约入门之区块上链
或许我们还都记得美国队长的勇敢、神武,为了捍卫自由和保卫人民而拥有的坚不可摧的盾牌,但我们还记得那个瘦弱到不堪一击的史蒂夫.罗杰斯么?血清的注射让他变成了很多人心目中的英雄。那么我们又可曾想过,美国队长还会变成以前的那个因瘦弱的身躯而一直被人嘲笑的史蒂夫.罗杰斯么,或许真的已经变不回去了,因为血清的注射是一个不可逆的过程,就如同eos中区块产生、确认之后是一个不可逆的过程一样。下面结合源码,承接上...原创 2018-07-26 22:27:19 · 1449 阅读 · 0 评论 -
eos源码赏析(十一):EOS之从“狼人游戏”看智能合约调用及权限分配(上)
火了没几天的“狼人游戏”因某些原因遭到口诛笔伐而下线,后期参与的玩家可谓损失惨重,而这一切的操盘仿佛都指向一个并不算匿名的匿名团队,毕竟在区块链上任何动作的执行都是可追溯的。该游戏上线不久即被指出存在数据溢出风险,同时该游戏的合约可以获取到参与用户的active权限,作为一个新生事物,eos的智能合约是可以更新的,可以想象当一个智能合约的开发者拥有了用户的active权限和一颗作恶的...原创 2018-08-04 10:59:15 · 1523 阅读 · 0 评论 -
eos源码赏析(十二):EOS之从“狼人游戏”看智能合约调用及权限分配(下)
接上篇,本篇从智能合约内部权限使用出发,结合“狼人游戏”源码,谈谈eosio中权限的分配及使用,本文主要分为以下三部分: 狼人团队的声明探析 多签名账户 权限eosio.code的相关说明 狼人团队的声明eos3d合约地址https://github.com/yanxi-me/eos3d-contract在“狼人游戏”源码底部,其团队已声明:将owne...原创 2018-08-13 19:50:46 · 1185 阅读 · 0 评论 -
eos源码赏析(十四):EOS智能合约数据持久化存储(下)
上篇文章发出来之后,群内前辈@郭其淼 针对性的提出两个问题:1、 创建用户时可以用emplace的返回值作为已创建对象的编号。2、 未对Multi-Index的一个关键性二级索引作出说明。今天我们结合这两个问题,去看看Multi-Index中的相关函数的实现,以及Multi-Index和chainbase之间的交互。本文主要包含有以下内容: Multi-Index中...原创 2018-08-26 19:53:46 · 987 阅读 · 0 评论 -
eos源码赏析(十五):EOS源码调试及跟踪(上)
工欲善其事,必先利其器。 前期一直在对源码做分析,其中有很多eos开发入门者还未深入到这一步,于是最近后台有很多留言,问关于如何进行eos代码调试的问题,这其中涉及到调试的IDE工具以及调试的方法。 从个人经验来看,若要对代码进行跟踪无外乎通过日志的打印去跟踪和断点调试堆栈的调用去观察代码调用的流程。今天我们就简单的谈谈如何对代码进行跟踪调试,系列同样分为上下两篇:上篇针对Li...原创 2018-08-29 20:32:58 · 1155 阅读 · 0 评论 -
eos源码赏析(十六):EOS智能合约数据表查询
今天群内讨论较多的内容为数据表的查询,集中在两个问题上: 为什么我的数据表查出来是个空的? 能否获取到某个数据表的数据量,即该表中存在几条数据? 针对这两个问题简单的给出答案就是: 基于eos进行智能合约开发时的abi注释要规范 可以修改一部分代码来获取某张表中的数据量,也可以获取到本次查询结果中的数据量。 数据表查询为空解决方案 仍旧以前文中的智能合约为例,在结构体...原创 2018-08-29 20:33:42 · 2618 阅读 · 2 评论 -
eos源码赏析(十七):EOS源码调试及跟踪(下)
在前文介绍了EOS源码调试及跟踪的方法以及IDE的使用,均在ubuntu16.04 下进行,笔者尝试在Windows下使用VS这款IDE结合Visualgdb进行调试的时候,代码运行起来了,但不知为何始终无法进断点调试,着实尴尬,在此向各位等待如何在Win下调试eos代码的朋友说声抱歉,具体尝试过程也会在本文中进行阐述,如果有对visualgdb比较熟悉的同学,还请多多指导。本文继续介绍一种I...原创 2018-09-10 22:51:46 · 638 阅读 · 0 评论 -
eos源码赏析(十八):EOS智能合约之合约内ram购买及资源抵押
昨天群内有朋友问,智能合约内是否可以实现帮用户购买ram或者帮用户抵押资源(cpu及net),以及如何来实现这个功能。今天我们一起来看下这个问题。文章的内容分为以下两个部分:buyram及delegatebw的实现合约内实现替用户购买ram及抵押资源1、buyram及delegatebw的实现我们知道在执行buyram的时候是分为两种情况的:以eos的单位来购买ram以r...原创 2018-09-10 23:00:30 · 979 阅读 · 0 评论