08 2018 档案

摘要:EOS每年增发1%的机制在系统合约中,其实说每年增发1%只是一年的总数,其实是只要在出块,EOS就在增发的路途中,下面分析一下增发的代码。 其实增发的1%的都是分给所有区块生产者的,只要出块了或者获得投票都有奖励,代码在producer_pay.cpp文件中,只有下面两个函数。 这个onlock函数 阅读全文
posted @ 2018-08-30 16:05 HBright 阅读(1880) 评论(0) 推荐(0)
摘要:在查看boost库时发现一个小文件checked_delete.hpp里面几个小函数,它的作用用很简短的话来说:防止未定义的行为造成delete时的内存泄露。实现如下: 先看看下面这一种用例: 下面在main中实现我们的测试: 这样的代码实现delete方式是无法调用析构函数,所以就有了下面这一行 阅读全文
posted @ 2018-08-23 20:55 HBright 阅读(432) 评论(0) 推荐(0)
摘要:boost库中有一个boost::lockfree::queue类型的 队列,对于一般的需要队列的程序,其效率都算不错的了,下面使用一个用例来说明。 程序是一个典型的生产者与消费者的关系,都可以使用多线程,其效率要比使用上层的互斥锁要快很多,因为它直接使用底层的原子操作来进行同步数据的。 freed 阅读全文
posted @ 2018-08-20 20:50 HBright 阅读(1594) 评论(0) 推荐(0)
摘要:整理一下c++中shared_ptr,weak_ptr,unique_ptr三种指针的使用案例和注意事项,让程序资源更加案例,在标准库中,需要包含<memory>,在boost库中, 一. 智能指针unique_ptr 与shared_ptr相似,区别在于unique_ptr是独立拥有对象权,因此只 阅读全文
posted @ 2018-08-18 18:08 HBright 阅读(1199) 评论(0) 推荐(0)
摘要:调了两天,终于把EOS的出块和DPOS共识机制的代码看了个大概,下面做个小总结。因为这一块是EOS比较核心的代码块,稍微复杂些,如果有理解错误之处,请大家见识并帮我指出来,我也会有可能随时改写这里的内容,尽量保持表达的正确性。 在调度的过程中,我可能修改了部分源代码并配置了环境: 1.配置多节点多主 阅读全文
posted @ 2018-08-17 18:16 HBright 阅读(2004) 评论(0) 推荐(0)
摘要:本文参考EOS版本:v1.1.1 一.EOS投票相关 //用户投票1.不能自己代理自己,但可以自己给自己投票; 2.投票的生产节点名称不能重复;3.投票人设置了投票代理人后自己不能再投票;4.投票人需要先抵押EOS,才有资格进行投票(多索引列表voters); 5.用户投票随时可以撤销再次进行投票, 阅读全文
posted @ 2018-08-10 12:46 HBright 阅读(1365) 评论(0) 推荐(0)
摘要:总结了一个简单的boost asio的tcp服务器端与客户端通信流程.模型是一个client对应一个线程。先做一个记录,后续再对此进行优化。 环境:VS2017 + Boost 1.67 server: client: 阅读全文
posted @ 2018-08-06 19:56 HBright 阅读(564) 评论(0) 推荐(0)
摘要:本文编写了一个小例子诠释了EOS是如何对数据签名与校验的,通过本文可以理解了签名的重要性和数据的不可篡改性。 系统: ubuntu 版本为EOS1.1.1 注:因为本文的程序是把EOS里面的钱包和fc工具的代码全部提取出来编译的,这个过程相对复杂本文不做解释,这里只注重本文的内容,但我的示例代码是来 阅读全文
posted @ 2018-08-02 18:12 HBright 阅读(2887) 评论(0) 推荐(0)
摘要:本文编写了一个简单的EOS智能合约,实现用户管理和资产管理,包括存钱,取钱,转帐的功能,旨在学习如何编写自己的EOS合约功能。 系统:Ubuntu EOS版本:v1.1.1 一.智能合约代码 二.测试流程: 三.测试功能 运行到测试步骤的第三步后查看用户信息与资产是这样的 运行第四步再查看 现在我们 阅读全文
posted @ 2018-08-02 16:38 HBright 阅读(1738) 评论(0) 推荐(0)