点击上方蓝字关注我们 核心技术Chain33介绍 行业痛点 目前市面上已有部分公链开发团队,但公链开发门槛极高,相关人才稀少,开发成本高、难度大、周期长。真正需要使用区块链技术的企业或者希望借此转型的企业,难以独立完成开发,这也限制了区块链技术在商业端的结合与探索。难道市面上就没有一套入门门槛低、易于开发且高效的区块链底层系统吗?为此,Chain33开发者平台应运而生,旨在让开发者轻松玩转区块链! Chain33是一个开发门槛低、可拔插、易升级、分层的高效区块链架构,可供开发公链、联盟链及私链等,并首创平行链架构及模块化体系。由杭州复杂美科技有限公司(下称复杂美)历时5年研发。经过5年的潜心研发,2018年11月19日,复杂美的核心技术Chain 33正式开源。 基本信息 开源日期:2018年11月19日 Github上的Chain33开源地址:https://github.com/33cn/chain33 Chain33开发者平台官网:https://chain.33.cn/ 推特:https://twitter.com/FuzameiLtd(@FuzameiLtd) 开发团队-复杂美企业官网:https://33.cn/ 支持的共识机制:支持可插拔的共识 公链: POS(案例:比特元BTY),DPOS+BFT(案例:原链YCC) 联盟链:Tendermint,PBFT 私链:RAFT 平台支持语言:Go语言 智能合约开发语言:Go,Solidity,C++,Javascript 特 点 模块化设计,轻松部署你的链 Chain33采用模块化设计,提供超过十种以上的模组化功能,开发者可自由组合应用,开发简易,仅需基础的编程能力,即可打造一条公链,无需耗费大量成本自己开发区块链底层; 高兼容性,应用无碍移植 Chain33的兼容性极高,无论是大型或是小型应用,皆可以无碍在Chain33上开发; 可修改内核,共识可插拔,满足你的每一个需求 不同于其他公链大多只能开发DApp,Chain33开放修改内核,对内核作二次开发,内核极小,可通过可插拔模式替换; 首创平行链架构,兼顾安全、高性能与多样化生态 最后,Chain33首创的平行链架构,兼顾主链的安全和运行效率的同时,可用平行链来打造多样的生态性,市场应用前景巨大。 技术架构 Chain33技术构架支持目前市场上的两大区块链需求场景,即“公链构架”和“联盟链、私链构架”。主要分为五个层级:数据层、网络层、共识层、激励层及应用层。 应用层:兼容以太坊智能合约,支持发行代币、资产交易、钱包找回,hash锁定等原生能力,同时支持用户可扩展执行器(合约)。共识层:共识算法可插拔,支持POS及DPOS的公链共识、Tendermint及pbft联盟链共识、Raft私链共识、平行链共识等。数据层:数据存储方式支持可扩展,目前支持MPT、MAVL、KVDB、MVCCKVDB多种方式。 平行链架构介绍 平行链是其公链架构中的一大特色。为了解决区块链扩容以及TPS限制问题,目前市面上的主要方案包括“分片技术”、”侧链“以及“DAG”,其中分片技术为主流形式。但以上三种解决方案都存在一定问题,尚未有最完美的方案。而平行链概念的提出,提供了一种更好的选择方向. Chain33是行业内第一个提出平行链构架概念,并解决扩容和TPS低落两大问题的区块链系统。平行链此后其被百度、阿里等机构认可并跟进研究,也证明了平行链方向具有前瞻性。 但提升区块链网络性能只是平行链架构的基本属性之一,平行链的核心竞争力在于大大降低了部署公链的门槛,因此平行链也可理解为“平行公链”、“小公链”。 chain33平行链拓扑示意图 平行链的概述 平行链由多条底层为Chain33的链组成,交易发送到主链上被共识打包,随后同步到平行链上被执行,最后执行结果写回主链进行共识,分离共识和交易执行,同时实现交易执行,提升TPS。 平行链面向所有群体开放,属于公链的一种,它不仅仅是一个dapp的应用,它也是在主链基础上搭建的区块链,拥有自己的区块链生态,平行链使用主链的共识,拥有独立的钱包和区块链浏览器,结合开放平台的API 和 SDK,就可以开发出自己所需的应用链。非常适合需要建立自己商业生态的中小企业。 ?chain33平行链示意图 首创平行链架构优势 平行链架构的设计,既能保证主链的安全,又能提升主链的运行效率。平行链的一大特点是分开数据存证和业务逻辑,提升运行效率。主链上只放指令和结果,不放虚拟机,较为复杂的业务逻辑则放在平行链上实现,这样做的好处是若平行链性能出现问题或者智能合约被攻击,都不会影响主链的稳定运行。 但这并不代表平行链完全受制于主链,它亦是一条相对独立的区块链网络,可以编写多种智能合约,如发行各种Token、开发Dapp、拥有独立的钱包、独立的区块链浏览器等等,平行链的交易由自己的节点来验证、校对,而不影响主链。 平行链云服务组成 Chain33开发平台系统特点 简单易上手 联盟让开发者一学就会用,一用就能开发部署,是Chain33的首要愿望。Chain33开发者平台部署快捷简单,一个可执行文件,数个配置参数,一行启动命令便可以快速部署一个区块链主链网络及平行链网络。 高效 联盟区块链中,交易在主链上共识并存储。多条平行链同时处理交易,使区块链网络效率大大提升。 稳定 平行链构架有助于提升稳定性。复杂的功能可放在平行链上开发,主链不受影响。联盟链主链只运行核心功能,简单稳定。 安全 平行链使用主链安全的共识,安全性主链来提供。即便平行链遭到攻击或损坏,数据可以快速从主链同步,保证数据安全。 高扩展性 平行链支持部署自己的微共识和生态,支持主链和平行链跨链,平行链之间跨链交易。 Chain33开发语言 系统特点 一个语言是否成熟的语言,一个重要的标志就是开发过非常大型的系统。云计算领域的两个核心系统docker和k8s都是用go语言开发的。目前大部分区块链系统也是选择用go语言开发,可以说,要做区块链,go语言是必须要学的一种语言。 开发人员数量 一个语言的入门成本比较低,但是要精通类库和最佳实践,必须要经过数年的学习时间。所以非常小众的语言肯定不在考虑在内,目前go语言在全世界多如牛毛的语言中排行第十名,受到较多的开发者肯定。 语言的工程特性 Go语言在设计的时候,就考虑到了工程实践的问题,一个问题的解决方案基本上都只有一种写法,甚至只是把if写成这样都是非法的。go 提供了gofmt,会自动格式化代码,这样每个人写出的代码风格都非常一致,互相交流起来就不会有障碍。 面向大部分普通程序员 选择go语言的一个很重要的原因,就是一个中等水平的程序员,就能写出非常不错的go代码。这主要的原因还是go语言非常简单,特性非常的少,官方类库又非常丰富,大部分程序员都可以非常容易的上手开发。 核心竞争力 高度模块化,遵循 KISS原则的设计:可插拔,易升级 Chain33的模块化设计,在对区块链的底层架构、应用开发的不同功能和需求进行分析的基础上,划分并设计出一系列功能模块,通过模块的选择和组合可以构成不同的产品,以满足市场的不同需求。 开发一个软件其实是一个不断迭代进化的过程,Chain33因此采用“从混沌走向秩序的开发模式”,方便开发者随时调整和扩充。此外,有些开发者可能会在开发过程中发现,有些比较特殊的业务逻辑,需要专门定制某些模块来配合这个业务逻辑。 从迭代和重构、以及系统的可拓展性等角度考虑,Chain33将区块链的底层架构、不同应用开发的功能和需求纳入考量,将系统进行了模块化设计。包括 mempool的排队方式,加密签名的方式,共识的模式,RPC的函数,命令行的命令,钱包的内在逻辑,数据库存储的方式等等,区块链核心的所有模块都可以定制。 采用模块化的设计,这就好比用积木搭建一个机器人,手脚等身体各部分都按照类别放置,可以根据自己的意愿选择组装。在Chain33中,为大家提供了共识、加密和储存等多种模块,开发者在Chain33提供的架构下,可自由组合应用,开发简易,因此仅需基础的编程能力,即可打造一条公链,无需耗费大量成本自己开发区块链底层。 开源插件 共识部分: ? pbft(联盟链,beta) ? tendermint(联盟链) ? raft(私有链) ? ticket(公链) ? solo (测试链) 加密部分: ? sep256k1 (bitcoin, ethereum) ? ed25519 (tendermint,sc) ? sm2 (国密支持) store: ? mavl (tendermint 提供的后端数据存储方式) ? mpt (以太坊提供的数据存储方式) ? kvmvcc(目前性能最高的区块链后端存储方法) 执行器部分: ? evm (以太坊虚拟机支持) ? wasm (目前没有开源) ? cert (联盟链权限管理) ? hashlock (hash锁定,和btc,eth 跨链使用) ? paracross (平行链,注意,平行链只是我们的一个插件,可见内核非常的小) ? privacy (类似门罗币的隐私保护实现,这个例子可以好好学习一下,它显示我们系统可扩展性的强大,门罗币是utxo模型,但是也可以在我们系统里面兼容账户模型) ? trade (内置一个币币交易所,可以支持链上所有资产的交易) ? 游戏 成功案例 Chain33开发平台可用于公链、联盟链及私链开发部署,以及各类商业场景的DAPP应用开发。 公链案例 目前,chain33上已经成功搭建的公链案例包括:比特元区块链网络(BTY),企业级区块链SaaS平台-原链(YCC),Dapp开发者可基于以上公链开发,或自主部署公链、平行链; 联盟链、私链案例 小米与复杂美合作的联盟链等。 平行链案例 上链购-区块链商城、chat33-区块链聊天社交软件、火食-区块链进口食材溯源系统、艺术藏品行业-金丝楠木链、工业锅炉及节能产业-节能链、星晴-区块链医疗智能穿戴设备、区块链游戏—游戏竞猜剪刀石头布等平行链。 各类商业场景的区块链结合 Chain33的性能已证明足以支持商业级应用,包括供应链金融、仓单交易、票据撮合系统等,并可应用在多种产业,如:制造业、物流业、金融业等,不同的产业可在不同的平行链上开发公链,平行链和平行链之间不相互影响。 供应链系统应用 区块链应收款 区块链预付款 供应链金融与管理平台 金融租赁、金融仓储区块链平台 区块链仓单抵押流转与融资、区块链金融租赁等 区块链积分,支付系统 区块链交易所等 市场对比 1 整体结构对比 以目前市场上较为知名且成熟的石墨烯和Fabric为例,整体结构对比如下: 2 技术特点对比 01 以太坊智能合约部署过程 搭建以太坊私链环境,生成私链的创世区块; 启动私链,生成一个初始的以太币账户,开始挖矿(挖矿需要一个账户接收以太币); 编写智能合约,solidity和mix语言; 编译智能合约,单个文件的简单合约可以在线编译,多个文件需要借助solc(编译成字符串,全网同步); 部署,合约部署当作一笔交易记录再链上,需要支付一定以太币,并且运行需要gas。 02 超级账本智能合约部署过程 规划好联盟链的组织形式,?再编辑fabric的配置文件(包括:相关证书文件,系统通道初始区块,应用通道交易文件,锚节点配置更新交易文件等); 编辑好docker-compose文件(需要理解里面各参数的含义, 目前fabric开源代码里的共识只支持kafka和raft),?启动4个peer节点,一个order节点组成一个kafka集群; 部署fabric对应的SDK程序; 编写fabric的智能合约; 通过SDK来创建channel,把上面启动的peer节点加入到channel,同时安装并初始化chaincode(智能合约),在各个节点部署并初始化智能合约; 执行智能合约。 03 智能合约部署过程 GO语言部署方式: 编写GO语言的智能合约,和chain33一起编译成二进制文件。 通过接口调用智能合约来执行智能合约。 EVM的部署方式: 用Solidity编写智能合约。 通过chain33提供的接口将智能合约部署到chain33的EVM虚拟机中。 通过接口调用EVM合约来执行智能合约。 WASM的部署方式: 用C++编写智能合约。 通过chain33提供的接口将智能合约部署到chain33的WASM虚拟机中。 通过接口调用WASM合约来执行智能合约。 JSVM的部署方式: 用Javascript编写智能合约。 通过chain33提供的接口将智能合约部署到chain33的JSVM虚拟机中。 通过接口调用JSVM合约来执行智能合约。 3 与以太坊和超级账本系统间横向对比 1.特点 Chain33 轻量级框架,功能易扩展,支持可插拔的共识配置,适用于公链,联盟链和私链2、独创的平行链架构设计,使系统安全、稳定、高效。 以太坊 第一条实现智能合约的区块链。2. 性能问题,只适用于小规模的项目。 EOS DPOS的共识,及超级节点的高性能配置,使得它共识效率较高,速度较快。2. 超级节点的高配置导致服务器的成本很高。 超级账本 适用于联盟链,系统中的CA, 数据库,共识可插拔2. 框架比较重量级,不是非常理解内核的,无法进行比较大的定制。 2.共识机制 Chain33 公链:POS(BTY),DPOS+BFT(YCC)联盟链:tendermint, pbft私链:raft 以太坊:POW逐渐转向POS EOS:DPOS共识 超级账本:Kafka, raft 3.平台语言 Chain33:GO 以太坊:GO EOS:C++ 超级账本:GO 4.智能合约 Chain33支持以下4种智能合约: GO原生语言,适用于大规模复杂的合约逻辑 EVM(Solidity编写智能合约),兼容以太坊上的合约 WASM(C++编写智能合约),兼容EOS上的合约 JSVM(Javascript编写智能合约),Javascript开发者众多,降低区块链开发门槛,一个JS程序员就可单独进行Dapp开发,快速并提高开发效率。 以太坊:Solidity编写合约,无日志,难调试,修复代码错误难度较大 EOS:C++语言编写 超级账本:Docker中部署任何语言可写,实现各种功能相对灵活 5.跨链支持 Chain33:支持主链和平行链跨链 以太坊:MTP跨链 EOS:支持侧链 超级账本:不支持垮链验证,无法和超级账本以外的链相连 6.部署难度 Chain33:简单 以太坊:相对简单 EOS:相对简单 超级账本:相对复杂 7.扩展性 Chain33:好 以太坊:差(设计缺陷) EOS:好 超级账本:好 8.签名算法 Chain33:相比于后几者,还支持国密SM2,ed25519, 环签名 以太坊:secp256k1 EOS:secp256k1 超级账本:secp256r1 9.存储性能 Chain33 存储合理,可扩展分布式数据库,读写快。数据库支持:Leveldb, ssdb, pegasus 以太坊:单一leveldb存储 EOS:存储合理,可扩展分布式数据库,读写快 超级账本:存储合理,可扩展分布式数据库,读写快 10.企业级应用 Chain33 共识可插拔,可以支持联盟链的共识2. 支持CA认证,以及平行链的架构兼顾了共享和隐私,适用于企业级的应用。 以太坊:更适合做公链,企业级应用只适用于小规模项目 EOS 适合于公链应用,目前大量的应用都是博彩类。不适合用于企业级应用:1. 企业级应用对于数据隐私和监管有较高要求,大量数据和博彩类数据杂糅在一起,不利于监管。2. 如果要单独搭建一套EOS平台,服务器成本过高。 超级账本:联盟链,适用于企业级应用 11.安全漏洞 Chain33 已经在和安全公司合作对chain33的安全性做测评, 目前未发现安全漏洞。 以太坊:Solidity语言设计漏洞(the DAO) EOS:大量的安全问题,已经发生多起博彩类应用被黑客攻击 超级账本:暂无 12.开发成本 Chain33 开发速度快,官方提供很多可插拔的插件,减少重复开发开发语言支持GO, Solidity, C++ 以太坊 开发相对容易,但性能受限 EOS 支持C++语言开发合约,开发效率高于fabric和以太坊 超级账本 通用性接口多,难以熟悉,开发成本高,团队人员分散,解决问题慢 13.开源协议 Chain33:BSD3 以太坊:LGPL3.0 EOS:BSD 3 超级账本:Apache 2.0 14.落地项目 Chain33:案例较多,多家500强的实际案例 以太坊:比较少,以公链为主 EOS:案例较多,大多是博彩类应用 超级账本:案例较多 15.团队情况 Chain33 有稳定的国内团队,所有代码都是团队人员自行开发,可以对区块链进行深度定制,解决问题速度较快。 以太坊 开发团队分散在全球各地,很难进行深度定制, 遇到问题不容易解决。 EOS 开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。 超级账本 开发团队分散在全球各地,很难进行深度定制,遇到问题不容易解决。 总 结 Chain33开发者平台,致力于为开发者呈现一个易上手、高性能、稳定、安全的区块链底层系统,具有近200项区块链专利,全球排名前八。经过5年潜心研究与开发,首创了平行链架构及模块化体系,主链进行存证,平行链处理业务逻辑,极大提升了区块链网络的性能、安全性及稳定性。 使用chain33开发者平台,可用于开发部署公链、联盟链及私链,以及各类商业场景的区块链解决方案和商业应用,如供应链金融、资产上链、各类DAPP等。 现Chain33已全面开源,面向全球的开发者开放,任何开发者都可以上Github(https://github.com/33cn/chain33)查看Chain33的代码,加入Chain33的开发者社区。 Chain33开发者平台链接 官网:https://chain.33.cn/ 产品文档: https://chain.33.cn/document/60 资源包下载: https://chain.33.cn/resource Github开源社区: https://github.com/33cn/chain33 点击观看复杂美官方宣传片 比特元社区 长按识别二维码加入我们 —- 编译者/作者:比特理财 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
33复杂美区块链核心技术Chain33详解
2020-12-12 比特理财 来源:区块链网络
LOADING...
相关阅读:
- 投资赛道很多人懂,创始人的品质却经常被人忽略。企业被黑客勒索是2020-12-12
- 富士康都和比特币扯上犊子了?小散有没有玩头?AAVE把我套了一段时间2020-12-12
- 市场总结:比特币持有价为$ 18K; 主动以太坊在2020年解决140%的增长2020-12-12
- 2021年最有前途的7种加密货币2020-12-12
- DeFi游戏Aavegotchi准备在1月4日通过NFT拍卖推出Mainnet2020-12-12