随笔分类 - 区块链
摘要:2011年百度某峰会,李彦宏首次提出”互联网思维“,从此这个词在商业大地光芒闪耀。也是从那个时间开始,互联网产业迎来了盛大的发展周期。人类社会的发展总是伴随着一轮又一轮的周期,从前市场的宠儿例如能源、制造、基建、金融、通信、甚至是软件,在互联网蓬勃发展以后,他们都被贴上了“传统”的前缀同时都在几年的
阅读全文
摘要:
Netty是目前最高效便捷的NIO框架。Netty可提供更加高可用、更好健壮性的稳定大规模连接的IO通道。任何一款区块链早期的技术产品,都是从联盟链开始演进,因为联盟链降低了很多原教旨的难度。回到BFT-SMaRt,它的网络连接分为节点之间的连接,节点与客户端之间的连接。节点之间的连接,我们在[BFT-SMaRt:用Java做节点间的可靠信道](https://www.cnblogs.com/Evsward/p/bft-serverConn.html)一文中详细分析了在共识逻辑之前节点之间能够做到的连接准备。那么,本文将继续探索在BFT-SMaRt项目中,节点与客户端之间的连接是如何实现的。
阅读全文

摘要:
信道的可靠是BFT的前提。(参见两军问题)
本文通过跟踪BFT-SMaRt通信层源码,研究节点间可靠信道的实现原理。本文涉及区块链方面的内容较少,重点研究使用Java语言建立可靠网络通道的技术,请选择性阅读。
通信层系统,是分布式网络中获得可靠且认证的点对点通道的保证。BFT-SMaRt的安全通信是基于SSL/TLS标准。
节点之间建立互为信任的Socket IO连接,实现点对点的消息处理。
节点与客户端之间建立健壮性、可用性更高的Netty NIO连接,实现大规模的消息处理。
本文主要介绍第一种情况:在BFT-SMaRt中,作为服务端的节点之间的连接构建方法。
阅读全文

摘要:
区块链的分布式网络需要解决的拜占庭问题,在此就不多介绍了。在此之前,PBFT、POW、POS以及DPOS,这些拜占庭容错类的算法由于研究人员的学术或者性能需求,大多是由Go语言或C++写成。这对于拥有广大群众基础的Java从业者是不友好的,也是区块链大规模商业化的阻力。因此,BFT-SMaRt最大的优势或者特色就是**使用了Java语言实现,同时可靠、模块化、接口灵活**。
阅读全文

摘要:最近在处理智能合约的事务上链问题,发现其中仍旧有知识盲点。原有的认识是一个事务请求会从客户端设备打包签名,然后通过RPC传到非出块节点,广播给超级节点,校验打包到可逆区块,共识确认最后变为不可逆区块。在执行事务完毕以后给客户端一个“executed”的状态响应。基于这个认识,本文将通过最新EOS代码
阅读全文
摘要:关键字:勘误,delegatebw,undelegatebw,listbw,资源管理,抵押,解抵押,返还资源 EOS中,资源抵押与解抵押是通过一对命令完成的:delegatebw,undelegatebw。 准备 首先我们准备两个账户,分别是test11111111(以下简称账号A)和test111
阅读全文
摘要:关键字:5G,区块链,人工智能,物联网,产业互联网 时间 最近半年的时间,博客的更新近乎停滞。这期间笔者将之前所有EOS相关的技术知识整理总结出了一本书 "《EOS实战与源码分析》" 。出书的过程是对过往知识的复习,梳理。当然这并不是博客更新缓滞的理由,而我想最大的原因可能是我们悄无声息地又站在了一
阅读全文
摘要:关键字:REX,资源交易,资源租赁,系统费用,bancor,成熟期,EOS,eosio.system,voting EOSIO 智能合约在v1.6.0版本增加了一个system合约使用的例子,可提供EOS资源交易。以供社区评估、调整和构建。REX只是智能合约层面提供的功能,而并没有相应的用户界面,部
阅读全文
摘要:系统合约在链启动阶段就会被部署,是因为系统合约赋予了EOS链资源、命名拍卖、基础数据准备、生产者信息、投票等能力。本篇文章将会从源码角度详细研究system合约。 关键字:EOS,eosio.system,智能合约,name类型,native.hpp,newaccount,bidname,core
阅读全文
摘要:目前EOS已经迎来了1.5.x时代,很多内容都有了较大的改变。其中智能合约的工作流程发生了改变,EOSIO为智能合约提供了独立且功能完整的工具集eosio.cdt。该工具集基于WASM平台,可解耦于eos系统,更便携地完成智能合约的开发编译。此外eosio.cdt在底层优化上已经超脱于eos系统,使
阅读全文
摘要:producer_plugin是控制区块生产的关键插件。 关键字:producer_plugin,同步区块的处理,pending区块,生产区块,最后不可逆区块,生产循环,生产安排,水印轮次,计时器,确认数 producer_plugin生命周期 EOS的所有plugin都有共同的基类,因此每个plu
阅读全文
摘要:区块链的应用是基于http服务,这种能力在EOS中是依靠http_plugin插件赋予的。 关键字:通讯模式,add_api,http server,https server,unix server,io_service,socket,connection 通讯模式 EOS中,一个插件的使用要先获取
阅读全文
摘要:EOS提供了大量的rpc接口,其中功能性最强,使用最频繁的一部分接口是EOS的行为核心,由chain_api_plugin提供,具体实现是在chain_plugin。 关键字:EOS,区块链,chain_plugin,chain_api_plugin,rpc,FC_REFLECT,反射,method
阅读全文
摘要:Controller是EOS区块链的核心控制器,其功能丰富、责任重大。 关键字:EOS,区块链,controller,chainbase,db,namespace,using,信号槽,fork\_database,snapshot 命名空间namespace 命名空间namespace定义了一个范围
阅读全文
摘要:近日,央行发布了长文《区块链能做什么、不能做什么?》,我想从一个程序员的角度来谈谈这篇文章。 观感 先说观感,这篇文章可以说真的是非常鞭辟入里了。笔触客观,分析得道。 token Token本质上是区块链内定义的状态变量,转账过程保证双方状态同时更新,token总量不变,不会形成传统意义上的结算在途
阅读全文
摘要:"上文" 书说到区块链的存储方式,并结合了EOSIO进行分析,其中也提到了使用CLion调试EOS的方法。本文将继续深入细致地展开对加载了mongo_db_plugin的nodeos的调试过程以及心得。 关键字:源码分析,Debug EOS,nodeos,mongo_db_plugin,CLion,
阅读全文
摘要:谈到区块链的存储,我们很容易联想到它的链式存储结构,然而区块链从比特币发展到今日当红的EOS,技术形态已经演化了10年之久。目前的EOS的存储除了确认结构的链式存储以外,在状态存储方面有了很大的进步,尤其是引入了MongoDB plugin以后,可以将功能有限的状态库搭上大数据的班车。本文将全面介绍
阅读全文
摘要:EOSIO/eos 目前在github的项目活跃度方面排名第一,release版本更新的速度让人应接不暇。今天EOS的大版本1.1发布,我也有幸参与了贡献,本篇文章重点介绍1.1版本的重大功能升级。 关键字:eos, eos 1.1, MongoDB,Read Mode: HEAD,sync,优雅退
阅读全文
摘要:本文主要研究EOS的tps表现,会从插件、cleos、EOSBenchTool以及eosjs四种方式进行分析研究。 关键字:eos, tps, cleos, txn\_test\_gen\_plugin, EOSBenchTool, qt, eosjs, C++源码分析 身心准备 tps: Tran
阅读全文
摘要:区块链公链都是基于p2p网络,本篇文章将建立一个多节点不同职责参与的EOS的测试网络,根据路上发现的可做文章的技术点大做文章。 关键字:EOS组网,全节点,交易确认,boot sequence,stake,帕累托分配模型,竞选出块节点,EOS出块奖励,代理投票,resign 构建源节点 源节点就是第
阅读全文