随笔分类 -  源码分析

摘要:Netty是目前最高效便捷的NIO框架。Netty可提供更加高可用、更好健壮性的稳定大规模连接的IO通道。任何一款区块链早期的技术产品,都是从联盟链开始演进,因为联盟链降低了很多原教旨的难度。回到BFT-SMaRt,它的网络连接分为节点之间的连接,节点与客户端之间的连接。节点之间的连接,我们在[BFT-SMaRt:用Java做节点间的可靠信道](https://www.cnblogs.com/Evsward/p/bft-serverConn.html)一文中详细分析了在共识逻辑之前节点之间能够做到的连接准备。那么,本文将继续探索在BFT-SMaRt项目中,节点与客户端之间的连接是如何实现的。 阅读全文
posted @ 2020-01-20 16:23 一面千人 阅读(588) 评论(0) 推荐(0) 编辑
摘要:信道的可靠是BFT的前提。(参见两军问题) 本文通过跟踪BFT-SMaRt通信层源码,研究节点间可靠信道的实现原理。本文涉及区块链方面的内容较少,重点研究使用Java语言建立可靠网络通道的技术,请选择性阅读。 通信层系统,是分布式网络中获得可靠且认证的点对点通道的保证。BFT-SMaRt的安全通信是基于SSL/TLS标准。 节点之间建立互为信任的Socket IO连接,实现点对点的消息处理。 节点与客户端之间建立健壮性、可用性更高的Netty NIO连接,实现大规模的消息处理。 本文主要介绍第一种情况:在BFT-SMaRt中,作为服务端的节点之间的连接构建方法。 阅读全文
posted @ 2020-01-14 11:49 一面千人 阅读(1896) 评论(0) 推荐(0) 编辑
摘要:最近在处理智能合约的事务上链问题,发现其中仍旧有知识盲点。原有的认识是一个事务请求会从客户端设备打包签名,然后通过RPC传到非出块节点,广播给超级节点,校验打包到可逆区块,共识确认最后变为不可逆区块。在执行事务完毕以后给客户端一个“executed”的状态响应。基于这个认识,本文将通过最新EOS代码 阅读全文
posted @ 2019-08-22 16:45 一面千人 阅读(2033) 评论(0) 推荐(0) 编辑
摘要:关键字:REX,资源交易,资源租赁,系统费用,bancor,成熟期,EOS,eosio.system,voting EOSIO 智能合约在v1.6.0版本增加了一个system合约使用的例子,可提供EOS资源交易。以供社区评估、调整和构建。REX只是智能合约层面提供的功能,而并没有相应的用户界面,部 阅读全文
posted @ 2019-04-07 16:20 一面千人 阅读(4930) 评论(1) 推荐(1) 编辑
摘要:系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源、命名拍卖、基础数据准备、生产者信息、投票等能力。本篇文章将会从源码角度详细研究system合约。 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core 阅读全文
posted @ 2019-01-25 20:28 一面千人 阅读(1764) 评论(2) 推荐(1) 编辑
摘要:producer_plugin是控制区块生产的关键插件。 关键字:producer_plugin,同步区块的处理,pending区块,生产区块,最后不可逆区块,生产循环,生产安排,水印轮次,计时器,确认数 producer_plugin生命周期 EOS的所有plugin都有共同的基类,因此每个plu 阅读全文
posted @ 2018-12-08 15:56 一面千人 阅读(1461) 评论(0) 推荐(0) 编辑
摘要:区块链的应用是基于http服务,这种能力在EOS中是依靠http_plugin插件赋予的。 关键字:通讯模式,add_api,http server,https server,unix server,io_service,socket,connection 通讯模式 EOS中,一个插件的使用要先获取 阅读全文
posted @ 2018-11-27 18:14 一面千人 阅读(1244) 评论(0) 推荐(0) 编辑
摘要:EOS提供了大量的rpc接口,其中功能性最强,使用最频繁的一部分接口是EOS的行为核心,由chain_api_plugin提供,具体实现是在chain_plugin。 关键字:EOS,区块链,chain_plugin,chain_api_plugin,rpc,FC_REFLECT,反射,method 阅读全文
posted @ 2018-11-19 18:57 一面千人 阅读(3695) 评论(0) 推荐(0) 编辑
摘要:Controller是EOS区块链的核心控制器,其功能丰富、责任重大。 关键字:EOS,区块链,controller,chainbase,db,namespace,using,信号槽,fork\_database,snapshot 命名空间namespace 命名空间namespace定义了一个范围 阅读全文
posted @ 2018-11-13 17:43 一面千人 阅读(2377) 评论(1) 推荐(0) 编辑
摘要:"上文" 书说到区块链的存储方式,并结合了EOSIO进行分析,其中也提到了使用CLion调试EOS的方法。本文将继续深入细致地展开对加载了mongo_db_plugin的nodeos的调试过程以及心得。 关键字:源码分析,Debug EOS,nodeos,mongo_db_plugin,CLion, 阅读全文
posted @ 2018-08-23 20:06 一面千人 阅读(1652) 评论(11) 推荐(1) 编辑
摘要:谈到区块链的存储,我们很容易联想到它的链式存储结构,然而区块链从比特币发展到今日当红的EOS,技术形态已经演化了10年之久。目前的EOS的存储除了确认结构的链式存储以外,在状态存储方面有了很大的进步,尤其是引入了MongoDB plugin以后,可以将功能有限的状态库搭上大数据的班车。本文将全面介绍 阅读全文
posted @ 2018-08-21 16:19 一面千人 阅读(4936) 评论(2) 推荐(1) 编辑
摘要:本文主要研究EOS的tps表现,会从插件、cleos、EOSBenchTool以及eosjs四种方式进行分析研究。 关键字:eos, tps, cleos, txn\_test\_gen\_plugin, EOSBenchTool, qt, eosjs, C++源码分析 身心准备 tps: Tran 阅读全文
posted @ 2018-07-17 14:49 一面千人 阅读(3982) 评论(5) 推荐(0) 编辑
摘要:本文内容本属于《 "【精解】EOS TPS 多维实测" 》的内容,但由于在编写时篇幅过长,所以我决定将这一部分单独成文撰写,以便于理解。 关键字:eos, txn\_test\_gen\_plugin, signed\_transaction, ordered\_action\_result, C+ 阅读全文
posted @ 2018-07-13 14:30 一面千人 阅读(2079) 评论(2) 推荐(1) 编辑
摘要:区块链公链都是基于p2p网络,本篇文章将建立一个多节点不同职责参与的EOS的测试网络,根据路上发现的可做文章的技术点大做文章。 关键字:EOS组网,全节点,交易确认,boot sequence,stake,帕累托分配模型,竞选出块节点,EOS出块奖励,代理投票,resign 构建源节点 源节点就是第 阅读全文
posted @ 2018-06-28 10:37 一面千人 阅读(4745) 评论(4) 推荐(2) 编辑
摘要:智能合约操作链数据库是很常见的应用场景。EOS提供了专门的工具来做这件事(相当于Ethereum的leveldb),专业术语叫做持久化API,本文将完整严密地介绍这个工具以及对它的使用测试。 关键字:EOS,智能合约,链数据库,eosio::multi_index,constructor,empla 阅读全文
posted @ 2018-05-21 17:40 一面千人 阅读(5516) 评论(27) 推荐(0) 编辑
摘要:EOS智能合约中包含一个exchange合约,它支持用户创建一笔交易,是任何两个基本货币类型之间的交易。这个合约的作用是跨不同币种(都是EOS上的标准货币类型)的,通过各自与EOS主链价值进行锚定,然后再相互发起交易兑换。要搞清楚的是,这与区块链“传统的”交易所并不一样,那个主要是集中在交易撮合上面 阅读全文
posted @ 2018-05-07 17:43 一面千人 阅读(6070) 评论(7) 推荐(0) 编辑
摘要:EOS,智能合约,abi,wasm,cleos,eosiocpp,开发调试,钱包,账户,签名权限 热身 本文旨在针对EOS智能合约进行一个完整的实操演练,过程中深入熟悉掌握整个EOS智能合约的流程,过程中出现的问题也会及时研究并入我们自己的知识体系。本文会主要跟随EOS官方Wiki的智能合约部分进行 阅读全文
posted @ 2018-04-24 17:49 一面千人 阅读(12506) 评论(10) 推荐(1) 编辑
摘要:上文我们总结了以太坊最主要的共识算法:ethash算法,本文将重点分析以太坊的另一个共识算法:clique。 关键字:clique,共识算法,puppeth,以太坊地址原理,区块校验,认证结点,POA,选举投票,snapshot,Comma ok断言 clique 以太坊的官方共识算法是ethash 阅读全文
posted @ 2018-04-09 18:11 一面千人 阅读(4845) 评论(4) 推荐(0) 编辑
摘要:本文具体分析以太坊的共识算法之一:实现了POW的以太坊共识引擎ethash。 关键字:ethash,共识算法,pow,Dagger Hashimoto,ASIC,struct{},nonce,FNV hash,位运算,epoch Ethash 前面我们分析了以太坊挖矿的源码,挖了一个共识引擎的坑,研 阅读全文
posted @ 2018-03-23 18:55 一面千人 阅读(24674) 评论(11) 推荐(2) 编辑
摘要:狗年吉祥,开工利是,我们继续研究以太坊源码。从本篇文章开始,我们会深入到以太坊核心源码中去,进而分析与研究以太坊的核心技术。 关键字:拜占庭,挖矿,矿工,分叉,源码分析,uncle叔块,agent,worker,事件监听 本文基于go ethereum 1.7.3 stable源码版本。源码范围主要 阅读全文
posted @ 2018-03-06 20:19 一面千人 阅读(15277) 评论(6) 推荐(8) 编辑

点击右上角即可分享
微信分享提示