摘要:
一.单节点的搭建 1.从github上下载源码 git clone https://github.com/ethereum/go-ethereum.git 2. 源码编译 cd go-ethereum make geth 编译的时候出现的报错信息: (1)env GO111MODULE=on go 阅读全文
摘要:
在做一个EOS 的action接口时,定义如下: 其中有一个结构uosio::producer_key,它在合约的结构中是如下定义: 其中 public_key 定义如下: 这里的 public_key 是一个压缩成33个字节的数据,但其实我传的是 一组公匙,我想在智能合约里还原成公匙的形态。EOS 阅读全文
摘要:
本文实现方案:在虚拟机ubuntu上运行单节点的EOS,把数据存储到mongodb中,然后通过本地的windows查看mongodb的数据。 配置如下: 虚拟机: ubuntu 16.04 EOS version: v1.2.5(本人源码有部分修改) ip:192.168.14.199 mongo 阅读全文
摘要:
最近有一个需求,需要修改EOS名称,将所有文件里面的EOS改为UOS,文件夹名称也需要修改,然后重新构建项目,于是写了一个小程序进行修改。如果有相同项目类似的修改,可以在下面这个程序稍做修改就可以了。 由于时间限制,没有进一步完善,以后有时间再修改一下成为工具。 EOS version: v1.2. 阅读全文
摘要:
EOS每年增发1%的机制在系统合约中,其实说每年增发1%只是一年的总数,其实是只要在出块,EOS就在增发的路途中,下面分析一下增发的代码。 其实增发的1%的都是分给所有区块生产者的,只要出块了或者获得投票都有奖励,代码在producer_pay.cpp文件中,只有下面两个函数。 这个onlock函数 阅读全文
摘要:
在查看boost库时发现一个小文件checked_delete.hpp里面几个小函数,它的作用用很简短的话来说:防止未定义的行为造成delete时的内存泄露。实现如下: 先看看下面这一种用例: 下面在main中实现我们的测试: 这样的代码实现delete方式是无法调用析构函数,所以就有了下面这一行 阅读全文
摘要:
boost库中有一个boost::lockfree::queue类型的 队列,对于一般的需要队列的程序,其效率都算不错的了,下面使用一个用例来说明。 程序是一个典型的生产者与消费者的关系,都可以使用多线程,其效率要比使用上层的互斥锁要快很多,因为它直接使用底层的原子操作来进行同步数据的。 freed 阅读全文
摘要:
整理一下c++中shared_ptr,weak_ptr,unique_ptr三种指针的使用案例和注意事项,让程序资源更加案例,在标准库中,需要包含<memory>,在boost库中, 一. 智能指针unique_ptr 与shared_ptr相似,区别在于unique_ptr是独立拥有对象权,因此只 阅读全文
摘要:
调了两天,终于把EOS的出块和DPOS共识机制的代码看了个大概,下面做个小总结。因为这一块是EOS比较核心的代码块,稍微复杂些,如果有理解错误之处,请大家见识并帮我指出来,我也会有可能随时改写这里的内容,尽量保持表达的正确性。 在调度的过程中,我可能修改了部分源代码并配置了环境: 1.配置多节点多主 阅读全文
摘要:
本文参考EOS版本:v1.1.1 一.EOS投票相关 //用户投票1.不能自己代理自己,但可以自己给自己投票; 2.投票的生产节点名称不能重复;3.投票人设置了投票代理人后自己不能再投票;4.投票人需要先抵押EOS,才有资格进行投票(多索引列表voters); 5.用户投票随时可以撤销再次进行投票, 阅读全文