本文节选自《aelf区块链应用架构指南》

作者:杜行舟、孟繁轲、郝玉琨


aelf项目的技术方案与应用场景

区块链技术的发展在十年间不断跨越。比特币宣称是一种“电子现金系统”,以太坊向“智能合约应用平台”大踏步迈进,超级账本致力于构建商用区块链系统的“框架及工具”。作为核心概念,区块链共识机制的问世是开创性的,因为这种共识机制对区块链系统所维系的业务价值实现了有效的技术保护。
本文是作者基于对区块链技术的长期研究及aelf项目的深入了解而进行创作的。aelf的立项思辨曾持续半年有余,从早期技术极客们打造的区块链乌托邦理念,到中期经历咨询界大V对商业运行模式兼容的考量,再到后期学术达人对项目可行性及实施预期的剖析,使aelf成为一个可面向业务场景定制的专注跨链交互、性能提升、资源隔离特性的底层公链。
aelf从0到1的大步迈进,包括本文作者在内的许多技术同仁、领域大咖为团队提供了大量优秀的技术设想与场景需求,不仅帮助aelf项目成长、成熟,还在相关行业的局部应用研发中躬亲实践,使得aelf项目团队始终能与典型行业需求保持紧密联系。
aelf将并行化云服务与分布式微服务作为直面现有区块链商业化痛点的一剂处方。云服务将计算与存储资源进行优势整合,微服务则以容器的形式对业务单元进行标准化部署,aelf在用户接口端将二者整合,并基于aelf内核实现云服务资源的调度与微服务容器的协同。
可定制区块头、可定制智能合约集、可定制共识机制是aelf技术骨干在三年前打造的BaaS(Blockchain as a Service)技术框架的基础组件,它能向上层业务系统提供更开放、更多元的接入策略,让框架回归本源,提升aelf的平台化建设预期。多级侧链与跨链协同则是aelf技术面向区块链应用系统基于信任的商业场景延伸的最关键能力。
aelf用“一链一合约”描述资源隔离的同时,也用“动态索引”描绘基于信任传递的商业应用延伸过程,而商业应用需求接入后的激励也能够反馈于aelf系统的协议升级,最终实现技术良性迭代与商业延伸拓展的相辅相成、相得益彰。



aelf解决方案的亮点

前文中提到aelf项目的技术方案与应用场景,下面我们将向读者展示一下aelf项目的技术优势与应用优势


技术优势


1.让封装更迅速:基于ProtoBuf的高性能序列化机制

aelf区块链系统采用ProtoBuf这一高效而简洁的数据序列化协议作为重要技术支撑,且在业务处理过程中基于ProtoBuf对每组交易数据仅进行一次正、反序列化的数据处理,极大提升了智能合约执行期间的数据I/O吞吐量及网络传输效率。此外,精细化、高性能的序列化技术组件也极大提升了aelf的主、侧链数据存储能力、效率。

2.让调用更高效:面向合约执行的Akka并行微服务框架

aelf区块链系统采用Akka框架作为并行化的主要技术支撑,aelf的交易处理、合约执行均支持类似微服务形态的部署,而并行化作业处理能力的提升能够使aelf具备卓越的跨越处理器核心与网络约束的算力伸缩性。不同于ETH采用EVM的虚拟机运行机制,aelf坚持将计算处理以Native的形式直接运行于节点,业务逻辑无须经过解释器或虚拟化映射,极大释放了物理节点基础设施的性能潜力,于VM运行效率想必有质的飞跃。

3.让资源更直接:构建gRPC高性能数据隧道

aelf区块链选用了gRPC作为跨域通信技术支持,源自Google技术生态的gRPC具有极强的开发语言兼容性,为aelf打通了异构技术体系的业务/数据接口设计、实现链路。gRPC以精准而高效的方式支持双向流通、多路复用,开发者能够像访问本地信息一样调用远程资源。gRPC与ProtoBuf、Akka相得益彰,从数据高效拼拆、计算联合处理、资源极速调用三个维度,确保了aelf面向商业化场景打造的“业务通衢”。

4.让共识更透明:通过去中心化随机数提升DPoS协同策略

aelf-ConsensusCore打造了区块链网络中的去中心化“真”随机数的生成实现,从技术上避免了“伪”随机数或随机碰撞***带来的共识安全隐患。在区块链技术体系中,更优的去中心化随机数生成策略促进了更自信的出块节点排序机制,使区块链共识的达成更为公正透明。aelf技术体系中提出并实现的AEDPoS共识机制能够更好地促进区块链业务使命的实现。

5.让处理更集约:化繁为简的Miner-TxPool交易轮候机制

aelf区块链通过“矿工-交易池轮候机制”实现了比ETH更为集约的交易排序策略,该策略进一步精细地优化了Miner的回报,使矿工在交易筛选、区块打包中的自动化执行更为合理。更集约的交易处理、区块打包能够让开发者在aelf体系合约执行计价活动中更具主导性。同时,aelf也在合约执行中设计了专门的合约安全业务模块进行调用者资源检测。

6.让价值更开放:精准可靠的CorssChain业务价值交互模式

多级侧链体系与跨链是aelf的开创性特性,也是aelf的重要使命之一,更是aelf资源隔离与扩展的基础。aelf通过多链交易脚本实现跨链双花的校验,通过LIB(不可回滚块)实现Miner对跨链业务的核查,通过Event标记戳实现区块检索中的Trigger机制。
对标Cosmos,aelf具有相似的实现跨链价值传递的能力,而aelf对Cosmos的超越之处在于,aelf支持跨链传输相同的Token—ELF。此外,aelf还能够支持跨链的业务逻辑调用,aelf的跨链交互能力是原生的,无需基于约定的Hub而构建。
与Polkadot相比,aelf的跨链主要基于多级主-侧链体系而构建,异构链可向前追溯至共同父链则可实现交互,数据结构为“树”型复杂度;而Polkadot则以中继链、平行链、转接链等异构链链接实现交互,数据结构为“图”型复杂度。当业务场景复杂度提高时,“图”型复杂度的跃升曲线将显著高于“树”型复杂度,其寻找最优跨链路径的成本也将始终高企。


应用优势


1.兼具框架/平台特性的企业级开发基础设施

aelf区块链系统是一套完备的区块链业务运行平台,也提供了一套与Fabric类似的企业级区块链开发框架。作为区块链3.0时代的项目,aelf的诞生兼具了ETH的平台特性与Fabric的开发框架特性。
区块链行业发展至今,亟须既具备开发框架特性,又能够支撑公网业务场景的区块链基础设施。这样不仅便于第三方开发业务拓展功能,同时也提供了不同业务主题之间价值传递的媒介。近年来,ETH的技术能力日渐式微,Fabric V0.6之后依赖Kafka作为共识呈现强烈的“分布式数据库”特征,而aelf将努力坚守区块链技术的初心。

2.模块化、可插拔的系统内核组件体系

多区块链项目具有庞大、耦合的代码体系,也是早期区块链开发者的梦魇。不同于其他开源区块链项目“一拉一个大块头”,aelf的内核组件则以“全家桶”的模块化形式提供给开发者,可以像Maven一样按需配置管理,在架构理念上遵循“高内聚、低耦合”的经典设计准则。
aelf的各模块是支持可插拔的。如果开发者基于技术升级或企业化定制需求须变更特定组件的内部实现逻辑,则可按照相同接口自行实现该组件并插装到aelf中,实现类似MySQL-InnoDB的定制改进。aelf欢迎更多的开发者加入aelf开源生态,一起让aelf的Scale Out来得更猛烈些吧。

3.构建企业级智能合约的SDK及脚手架工具

aelf的Contracts Core提供了合约开发的官方SDK与成熟的脚手架工具支持,可支撑企业级开发者完成业务逻辑的构建。

4.官方TestKit:企业级内测网络支持

企业级智能合约在主网部署、审核、上线前须在一个相对封闭的仿真网络环境中完成内部测试,以实现对上线后运行状态的确认。官方TestKit能够满足合约开发者单元及集成测试的需求,便于开发者完成开发级内部验证,通过数字孪生链的V&V确保主网应用上线质量。

5CodeGenerator:助力合约开发者的一步之遥

aelf的开发使用主流开发语言与成熟的IDE是对开发者友好直接的体现。官方推荐的CodeGenerator极大降低了合约开发成本,也使得aelf的学习曲线更为平滑。相比ETH,aelf将帮助开发者更好地理解智能合约,做好开发者由技术原型向企业级区块链系统一步之遥的沟通。

6CLI/AElfJSRPC层的轻量级客户接口实现

控制台命令行CLI为aelf平台提供了终端/API级良好的客户端接口,方便用户实时掌握aelf网络的运行状态并与之交互。AElfJS是aelf官方基于aelf RPC层在NodeJS生态打造的轻量级客户接口,相信社区更多的开发者能够以AElfJS为范例,一步步完善aelf SDK生态,以便与更多开发者、用户的技术对接。



-End-


近几年来,越来越多的区块链从业人士开始真正思考区块链浪潮下的进与退。在传统行业高调入圈、多国监管频频到位、国内技术先发意愿强烈的氛围下,“区块链”一词成为人们的谈资。

曾经,对于拥抱风险的年轻人,区块链被视为获得第一桶金的机遇;对于苦寻突破的创业者,区块链又被视为鱼跃龙门的跳板;而对于久旱盼甘霖的传统行业,区块链所受青睐近乎以弯道超车的姿态力压大数据、人工智能、AR/VR等新晋“群芳”。那么区块链、分布式应用究竟能够提供怎样的交付产品呢?可能是从业者需要继续深思的问题。


aelf区块链应用“三剑客”杜行舟、孟繁轲、郝玉琨合力编写《aelf区块链应用架构指南》




本书从概念的入门剖析、行业领域分析直至其性能设计与场景理念的描述,完整的将aelf项目完整展现在观众的视野当中。


与一般工具类图书相比,本书通过完整的架构体系、通俗易懂的表达方式,向读者传达了一个讯息——区块链的第一个十年令技术企业首次意识到场景即价值,相信区块链的第二个十年能够更加深入的融入社会各个层面。


©著作权归作者所有:来自51CTO博客作者机械工业出版社的原创作品,如需转载,请与作者联系,否则将追究法律责任

更多相关文章

  1. 软件的上榜率仅2%?Smartbi登榜2020广东省名优高新技术产品!
  2. 我在阿里实习做开源
  3. Gas费用持续攀升!NA公链 NAC公链如何破解高额Gas费用的困局?
  4. 搞技术的程序员为什么都转型去做公众号了?
  5. 10.66G的Spring Boot 2.0深度实践之核心技术篇视频教程免费下载
  6. 内存管理思想
  7. NA公链(Nirvana)解决的六大问题在众多公链中脱颖而出NAC公链
  8. vivo 应用商店中的断点续传技术剖析
  9. Spring Cloud分布式微服务实战,养成应对复杂业务的综合技术能力

随机推荐

  1. java中的几个线程池的使用
  2. RSSHelper正式开源
  3. 进度条(ProgressBar)拖动条(SeekBar)android
  4. java中一个极其强悍的新特性Stream(非常实
  5. Android(安卓)pm命令及使用
  6. 上不了线的小程序
  7. 再也不要对==和equals的区别有困惑了,保证
  8. Springboot整合mybatis(注解而且能看明白
  9. JDBC面试题都在这里
  10. 2017中国程序员薪资调查:平均薪资10K!